VBAでIEを弄くる
ねむぃ。間違い無く睡眠足りてない。いい加減控えなきゃ駄目だ。。。
で、先日、いつもの某掲示板にてVBAでIEを操作するには?
ってな質問に回答したんだけど、今までなんだかんだで
まともにやった事なかったので自分で色々試してみた。
ちなみにここが非常に参考になる。こんな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をそこそこ知ってるだけでも、結構色々できそうですな。