今、エクセルVBAの勉強中で、VBAからIE7を操作して、WEB検索できるようになりたいと思っています。
IEを操作できるVBコードを書くためには、どこで何を勉強すればよいのでしょうか。
具体的には、以下のURLのページ下部で使われている「ie.document.all. …」といったコードを書きたいのです。
【参考URL1】
他の人による質問-"Excelのマクロを使って、インターネットエクスプローラーを操作したいです。"
http://q.hatena.ne.jp/1137216805
今のところ、ドキュメントオブジェクトモデル(DOM)や、DHTMLという単語がキーワードになるのかなと思っていますが、どうでしょうか。
あと、以下のサイトは、少しずつ読み進めています。
【参考URL2】
"三流君VBAでIE操作 InternetExplorer.Applicationを操作する"
http://www.ken3.org/cgi-bin/group/vba_ie.asp
MSDNのような情報量が多いサイトの具体的なページか、体系だって説明されている書籍等を書いていただければありがたいです。
どうぞよろしくお願いします。
PS.
「IEではなく他のブラウザを使え」という意見もありそうですが、会社のチームメンバーが使っているブラウザがIEのため、ブラウザはIEが良いです。
基本的には上で挙げているURLが詳しく書かれていてよいと思います。
ちなみに、参照設定をしておくと、プロパティやメソッドをオートコンプリートしたり、引数をポップアップ表示してくれたりするので便利です。
ExcelのVBAエディタから、[ツール]→[参照設定]で、
の2つにチェックを入れておいてください。
その上で、
Dim objIE As Object
と書くのではなくて、
Dim objIE As InternetExplorer Dim objDoc As HTMLDocument Set objIE = CreateObject("InternetExplorer.Application") objIE.GoHome Set objDoc = objIE.Document
のように使います。
参照設定しておくと、
などの利点があるので、リファレンスがなくてもそれなりにプログラムできてしまいます。
参照設定せずにObject型でも使うことは可能ですが、不便でわかりにくいです。特に初心者には。
いちおう、英語のリファレンスはこちらになります。日本語版は残念ながらなかったかと思います。
Reference for Visual Basic Developers
ただし、InternetExplorerオブジェクトでは基本的に使うプロパティやメソッドは限られます。Visible、Navigate、Busyあたりを押さえておけば後は知らなくても大丈夫だったりします。
むしろ沢山使うことになるのは、objIE.Document.~ 以下のオブジェクトだと思います。objIE.Document (上の例では objDoc に代入している) は、通常のWebページでJavaScriptやVBScriptを使う時の document.~ とほぼ同じ使い方ができます。ですので、objDoc.~ 以降の説明は星の数ほどあるJavaScriptやVBScript(は少ないかもしれませんが…)の解説ページを参考にすればokです。Webページのスクリプトで document.~ と書いているところは、Excelでは objDoc.~ (または objIE.Document.~)などに置き換えるだけです。変数名はただの例ですので objIE や objDoc でなくてもかまいません。
ただし、objIE.Document.~ と直接書いてしまうと、HTMLDocument型と認識してくれないので、オートコンプリートなどはしてくれません。明示的に HTMLDocument型の変数(上の例では objDoc )に代入してやることで、オートコンプリートが効くようになります。
基本的には上で挙げているURLが詳しく書かれていてよいと思います。
ちなみに、参照設定をしておくと、プロパティやメソッドをオートコンプリートしたり、引数をポップアップ表示してくれたりするので便利です。
ExcelのVBAエディタから、[ツール]→[参照設定]で、
の2つにチェックを入れておいてください。
その上で、
Dim objIE As Object
と書くのではなくて、
Dim objIE As InternetExplorer Dim objDoc As HTMLDocument Set objIE = CreateObject("InternetExplorer.Application") objIE.GoHome Set objDoc = objIE.Document
のように使います。
参照設定しておくと、
などの利点があるので、リファレンスがなくてもそれなりにプログラムできてしまいます。
参照設定せずにObject型でも使うことは可能ですが、不便でわかりにくいです。特に初心者には。
いちおう、英語のリファレンスはこちらになります。日本語版は残念ながらなかったかと思います。
Reference for Visual Basic Developers
ただし、InternetExplorerオブジェクトでは基本的に使うプロパティやメソッドは限られます。Visible、Navigate、Busyあたりを押さえておけば後は知らなくても大丈夫だったりします。
むしろ沢山使うことになるのは、objIE.Document.~ 以下のオブジェクトだと思います。objIE.Document (上の例では objDoc に代入している) は、通常のWebページでJavaScriptやVBScriptを使う時の document.~ とほぼ同じ使い方ができます。ですので、objDoc.~ 以降の説明は星の数ほどあるJavaScriptやVBScript(は少ないかもしれませんが…)の解説ページを参考にすればokです。Webページのスクリプトで document.~ と書いているところは、Excelでは objDoc.~ (または objIE.Document.~)などに置き換えるだけです。変数名はただの例ですので objIE や objDoc でなくてもかまいません。
ただし、objIE.Document.~ と直接書いてしまうと、HTMLDocument型と認識してくれないので、オートコンプリートなどはしてくれません。明示的に HTMLDocument型の変数(上の例では objDoc )に代入してやることで、オートコンプリートが効くようになります。
大変大変勉強になりました!ありがとうございます!
紹介していただいたURLおよび、javascriptのページで勉強させていただきます!
大変大変勉強になりました!ありがとうございます!
紹介していただいたURLおよび、javascriptのページで勉強させていただきます!