【第9回】ExcelVBA:Internet Explorerを立ち上げてURLにアクセスする 

さて。

色々と基礎知識のおさらいなどで時間がかかりましたが、今回からようやく実践的な説明に入っていきます。

今回のテーマは、ズバリ!

『Internet Explorerで遊ぼう!』です。

Internet Explorerを操作するなんて超難しそうと気後れしてしまいそうですが、そんなことはありません。大丈夫!

環境をInternet Explorerをバージョン8に更新したら、さあスタートです。

1.Internet Explorerを立ち上げる

Sub IEブラウザ立ち上げ

Set obj = CreateObject(“InternetExplorer.Application”)
obj.Visible = True

End Sub

これで、真っ白なIEブラウザが立ち上がるはずです。簡単ですね!かるく解説しておくと、objというのはいま適当に作った変数で、CreateObject(“InternetExplorer.Application”)というところで、このobjにIEブラウザを作って格納しています。obj.Visible = Trueというところは、人間の目に見えるようにしますよーという指示になります。.Visibleというのはプロパティといって、オブジェクトの性質を表すデータとなります。なので上記コードを訳してみると、

『マスター、obj(=IEブラウザ)を見えるようにいたしますか?(=Visible)=True(はい、見えるようにしたいのですよー)』というようなやり取りをしていることになります。ちなみに、これをobj.Visible = Falseにすると、ブラウザは立ち上がるものの、画面上には現れないことになります。水面下で静かに作業させたい場合などで有効ですが、どんなエラーが起きてるかとかを目で確認できなくなったりするので、ある程度慣れてからFalseを使うことをおすすめします。ちなみに、Falseで立ち上げたブラウザは、Ctrl+Alt+Deleteでタスクマネージャを起動してみれば、きちんと動作していることが分かります。

2.目的のページへ移動する

Sub ブラウザを立ち上げてURLにアクセス

Set obj = CreateObject(“InternetExplorer.Application”)
obj.Visible = True

obj.Navigate (“http://vbafun.com/”)
Do While obj.Busy
Loop

Application.Wait Time:=Now + TimeValue(“00:00:03″)

End Sub

これで、このブログにアクセスできたはず!このコードは、obj.Navigateというところで、さきほど説明したオブジェクトのプロパティ(性質を表すデータ)としてNavigate(=進む、操縦する)を指定しています。obj.Navigate(変数)でオブジェクトを変数の先へ進めることができるようになるのです。ここでは、このブログのURLを直接指定しちゃってますが、もちろん、

URL=”http://vbafun.com/”
obj.Navigate(URL)

などと指定することで、オブジェクトのアクセス先を変数にすることができます。複数URLにアクセスさせたい時にこのような記法を取ることがありますので(というか、しょっちゅう使うので)、覚えておきましょう。その下に書いてあるコード、Do While obj.Busy Loop という箇所は、Do ~ LoopでDoの中身を繰り返すという意味で、While(~の間は)というので、繰り返しの条件を指定しています。その条件というのがobj.Busyという箇所です。これはオブジェクトがビジー状態(指示した操作をブラウザが処理している状態ということなので、これらをまとめるとDo While obj.Busy Loopというのは『ブラウザがビジー状態なら、何もせずに待っててねー』という指示となります。
最後のApplication.Wait Time:=Now + TimeValue(“00:00:03″)というところは、Application.Waitというので、『アプリケーションを待たせます』、Time:=Now + TimeValue(“00:00:03″)というので、『その待たせる時間は、今(=Now)から3秒間(TimeValue(“00:00:03″))ですよー?』という意味です。ポチに『3秒待て』って言ってるようなもんですね。全部くっつくと難しく見えますが、実はとっても簡単です。ビジー状態を抜けても、ブラウザにサイトが全部表示されるまで、画像の読込などで時間差があるため、全部表示されるまでとりあえず何もせずに待ちましょうねっていうことですね。まあ、3~5秒くらい待てばよほど重いサイトでなければきちんと表示されると思います。
とりあえず長くなっちゃいましたが、これで『ブラウザを立ち上げて、URLにアクセスする』という動作が理解出来るようになったと思いますので、今回はここまで。続きはまた次回~。