VBAでIEを弄くる

ねむぃ。間違い無く睡眠足りてない。いい加減控えなきゃ駄目だ。。。

で、先日、いつもの某掲示板にてVBAIEを操作するには?
ってな質問に回答したんだけど、今までなんだかんだで
まともにやった事なかったので自分で色々試してみた。
ちなみにここが非常に参考になる。こんなblog見るより全然参考になるww

まずは単純に特定のページを表示させる

だけなら至って簡単。

Sub IEHandling()

    Dim objIE As Object

    'IEを起動する
    Set objIE = CreateObject("InternetExplorer.Application")
    '表示する※起動しただけでは見えないので
    objIE.Visible = True

    'Webページを開く
    objIE.Navigate "http://hogehoge.com/hoge/"
    
    '表示終了まで待つ
    Do While objIE.Busy = True And objIE.ReadyState <> 4
        DoEvents
    Loop

    Set objIE = Nothing

End Sub

まぁ、こんな事するだけなら、VBAでやる意味全く無しですなww

submitなページ

テキストボックスやらに入力して、submitボタンをクリックすると
画面遷移して…ってなページの場合

Sub IEHandling()

    Dim objIE As Object

    'IEを起動する
    Set objIE = CreateObject("InternetExplorer.Application")
    '表示する※起動しただけでは見えないので
    objIE.Visible = True

    'Webページを開く
    objIE.Navigate "http://hogehoge.com/hoge/"
    
    '表示終了まで待つ
    Do While objIE.Busy = True And objIE.ReadyState <> 4
        DoEvents
    Loop

    With objIE.Document.Forms("hoge")         '★
        .Item("USERID").Value = "HOGE0001"    '★
        .Item("PASSWORD").Value = "hogehoge"  '★
        .Action = "./hoge.php"                '★
        .Submit
    End With

    Set objIE = Nothing

End Sub

★の部分は、当り前ですが、該当ページのhtmlソースに
あわせてやらないと駄目です。

最後に

Googleで、自分のblogのタイトルで検索させてみます。

Sub IEHandling()

    Dim objIE As Object

    'IEを起動する
    Set objIE = CreateObject("InternetExplorer.Application")
    '表示する※起動しただけでは見えないので
    objIE.Visible = True

    'Googleを開く
    objIE.Navigate "http://www.google.co.jp/"
    
    '表示終了まで待つ
    Do While objIE.Busy = True And objIE.ReadyState <> 4
        DoEvents
    Loop

    With objIE.Document
        .Forms("f").Item("q").Value = "そうのて"  '検索キーワードにblogのタイトルを入力
        .getElementById("il").Checked = True      '日本語のページを検索 にチェック
        .Forms("f").Submit                        '検索!
    End With
    
    Set objIE = Nothing
    
End Sub

うはwww2番目wwwテラ人気サイトwww
って虚しいだけなのでこの辺でやめときますww

とまぁ、DOMをそこそこ知ってるだけでも、結構色々できそうですな。