[三流解説IEのトップページへ] / [IE メソッドの一覧へ 戻る]

.Navigate2メソッド とは

メソッド .Navigate2 とは、機械和訳だと 移動2 です。(あまり意味無いか)
三流プログラマーの勝手な解釈・方言だと:
ページを開く動作の実行かなぁ。.Navigate と .Navigate2 の 違いがイマイチわからない今日この頃、
まぁ開くといってもイロイロな開き方があって、

ア.単純に指定したURLを開くには
objIE.Navigate "文字列(URLなど開きたい場所)"
で、ページを表示することができます。※表示後は、表示待ちをしないとね。

イ.第二引数 flags を 指定して、開き方を変える。
第二引数に1をセットして、新しいウインドウで開いたり、
2048、&H800 を指定して、新しいタブで開いたり、
objIE.Navigate2 "URLの文字列", &H800 '新しいタブで表示 2048
第二引数で開き方を変えることができます。
※新しいタブが .Navigate だと不可で .Navigate2 だとうまくいったなど、少し探る必要がありますが(詳しくは サンプル イ.の結果・動画を見てください。)

ウ.引数 PostDataを使い データを送る
Formにデータをセットして、Submitなんてやらずに、
POST先のURL,DATA,ヘッダーを指定して、目的のデータをPOSTすることができます。

'ページへPostDataを送ります
    Dim bPostData() As Byte  'バイト型の配列を作る
    Dim strURL As String     'POSTの送り先URL
    Dim strHeaders As String 'ヘッダー情報(送信データのヘッダー)

    '送信先とヘッダー情報の代入
    strURL = "http://www.ken3.org/cgi-bin/test/test029-2.asp"
    strHeaders = "Content-Type: application/x-www-form-urlencoded " & vbCrLf

    'StrConv で 変換して、バイト型の配列に強引に入れる。
    bPostData = StrConv("NO=0&KUBUN=VBA&MEMO=TEST+Ken3+4649", vbFromUnicode)

    '.Navigate メソッドで Postする、Dataを送る。
    objIE.Navigate strURL, , , bPostData, strHeaders 
    'POST先のURL,DATA,ヘッダーを指定しただけですが、これでPOST可能です。
    '※あらかじめ、送るパラメーターがわかっている場合は、こんな感じでOKです。
↑※全角文字のエンコードが抜けてます。近日作成するので少々お待ちを。

まだまだ、続きの重要な引数があるので、探っていく(近日公開予定、少々お待ちを)


正式な解説・説明はMSDNで:[.Navigate2 Methods]を見てください。


.Navigate2 を 使用した三流サンプル

ア.単純に指定したURLを開く

隣の.Navigateメソッド を 使用した三流サンプル を 紹介します
(まぁ、.Navigate2も URLの文字列を渡すのは同じなので、手抜きです。)
'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。
Sub ie_test()  '.Navigateメソッドでページの移動(URLを開く)

    'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True '可視、Trueで見えるようにします。
    
    '表示位置とサイズを調整する
    objIE.FullScreen = False  '※まぁ、わざわざ設定しなくてもいいけど。
    objIE.Top = 100      '左上 上位置
    objIE.Left = 100     '左上 左位置
    objIE.Width = 800    '横幅
    objIE.Height = 600   '高さ
    
    'XXXバー、外観・外枠の調整。
    objIE.Toolbar = False    'ツールバーを非表示にする
    objIE.MenuBar = False    'メニューも自動操作なので、非表示にする
    objIE.AddressBar = True  'URLなど アドレスバーは確認のため、表示する
    objIE.StatusBar = True   '一番下のステータスバーを表示。
    
    'ページの移動 目的のページを表示する
    objIE.Navigate "http://www.ken3.org/vba/"

End Sub

動画でテスト結果・解説 http://www.youtube.com/watch?v=-fVbKoNyfkU

イ.第二引数 Flags を 指定して、開き方を変える。

.Navigateメソッド を 使用した三流サンプル を 紹介します
.Navigate2 メソッド で ページを隣のタブに表示する

'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。
Sub ie_test()  '.Navigateメソッドでページの移動(URLを開く)

    'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True '可視、Trueで見えるようにします。
    
    '表示位置とサイズを調整する
    objIE.FullScreen = False  '※まぁ、わざわざ設定しなくてもいいけど。
    objIE.Top = 100      '左上 上位置
    objIE.Left = 100     '左上 左位置
    objIE.Width = 800    '横幅
    objIE.Height = 600   '高さ
    
    'XXXバー、外観・外枠の調整。
    objIE.Toolbar = True     'タブの切り替えで必要なので、ツールバーを表示にする
    objIE.MenuBar = False    'メニューは非表示にする
    objIE.AddressBar = True  'URLなど アドレスバーは確認のため、表示する
    objIE.StatusBar = True   '一番下のステータスバーを表示。
    
    'ページの移動 目的のページを表示する
    objIE.Navigate2 "http://www.ken3.org/"
    objIE.Navigate2 "http://www.ken3.org/vba/", &H800   '新しいタブで表示 2048
    objIE.Navigate2 "http://www.ken3.org/asp/", &H800   '新しいタブで表示 2048

End Sub


解説動画:http://www.youtube.com/watch?v=MIbEh_bdSVs

↑ .Navigate2 と .Navigate の違いも少し。

ウ.引数 PostDataを使い データを送る

表と裏じゃないけど、Navigate前に発生する[イベント.BeforeNavigate2]で、
PostData と Headers を 表示させて、値を探り、下記のように固定値ですがテストしてみました。
※全角文字と可変の値をエンコードしないとなぁ。(近日公開予定、少々・しばらくお待ちを。)
Sub ie_test_Navigate_PostData()  '.Navigate の引数 PostDataをテストする。※まずは固定値で

'IEの起動
    Dim objIE As InternetExplorer '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True      '可視、Trueで見えるようにします。
    
'ページへPostDataを送ります
    Dim bPostData() As Byte  'バイト型の配列を作る
    Dim strURL As String     'POSTの送り先URL
    Dim strHeaders As String 'ヘッダー情報(送信データのヘッダー)

    '送信先とヘッダー情報の代入
    strURL = "http://www.ken3.org/cgi-bin/test/test029-2.asp"
    strHeaders = "Content-Type: application/x-www-form-urlencoded " & vbCrLf

    'StrConv で 変換して、バイト型の配列に強引に入れる。
    bPostData = StrConv("NO=0&KUBUN=VBA&MEMO=TEST+Ken3+4649", vbFromUnicode)

    '.Navigate メソッドで Postする、Dataを送る。
    objIE.Navigate strURL, , , bPostData, strHeaders 
    'POST先のURL,DATA,ヘッダーを指定しただけですが、これでPOST可能です。
    '※あらかじめ、送るパラメーターがわかっている場合は、こんな感じでOKです。

    'ページの表示完了を待ちます。(送信後のページを待ちます。)
    While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True '.ReadyState <> 4の間まわる。
        DoEvents  '重いので嫌いな人居るけど。
    Wend

End Sub
解説動画:http://www.youtube.com/watch?v=2ZT_d7E_mn0

↑こんな感じで、テストしてみました。


.Navigate2 関連項目 リンク

三流君が .Navigate2 の 関連項目 を 紹介します
おっと、その前に正式な場所は(繰り返し紹介すると) MSDNで:[.Navigate2 Methods]を見てください。

Googleを使用して検索する

読者の声:三流君の説明・解説じゃ .Navigate2メソッド が よくわからなかったから、Googleを使って、自分で検索します。
三流君:残念です。あっ、下記にGoogleの検索窓を設置しました。
よく使われる変数名 : oIE,MyIE,objIE

オブジェクトの指定として : InternetExplorerWebBrowser
を指定しました。※この指定で検索するとサンプルが拾いやすいと思います。

Google 探す言葉:
検索場所:
WWW 全体から検索
microsoft.com の全体を検索 MSDN を指定して検索
三流君 ken3.org を検索 三流君Blogのサンプルコードを検索


ページフッター リンクや広告、質問送信など

三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。

[IE操作 三流解説のトップページへ 戻る] / [IE操作の三流サンプル一覧へ 戻る]

[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]

F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。
なれると当たり前に操作している方法が↓かなぁ。
[F1ヘルプ マクロ記録ほか]・・・基本のF1を押してヘルプを見る方法など
[実行時エラー、デバッグモード]・・・デバッグの流れを簡単に(ハマった時はツライけど)
[イミディエイト ウインドウ と Debug.Print]・・・プログラム作成時に便利なイミディエイト ウインドウ
[VBA ウォッチ式とSTOPを使ってみた]・・・STOPで止め、ウォッチ式でオブジェクトの中身を確認する方法など
[参照設定のお話]・・・設定すると便利な(設定しないと使えない)、参照設定のお話

項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。
[プログラムは心? spirit]・・・プログラマー 心・気質・魂
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話

項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。
[VBAでIE ウェブブラウザーを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[MSアクセス から エクセル を呼ぶ Excel.Application]・・・AccessからExcelを操作したりデータの書き出しなどです
[アウトルック メールの操作 Outlook.Application]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Blog:[三流君の作業日記]/ [objIEを使用したサンプルコードを見る]/ 広告-[通販人気商品の足跡]

質問や要望など メッセージを送る(三流君に連絡する)

三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。

感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。

あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい



(感想や質問・要望 メッセージはHPで記事に載せることがあります。)

急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。



[トップページへ 戻る] / [メソッドの一覧へ 戻る]