VBAに関する質問です。

今、エクセル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必須
  • 1人3回まで
  • 登録:
  • 終了:2008/09/23 10:19:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ardarim No.2

回答回数897ベストアンサー獲得回数145

ポイント100pt

基本的には上で挙げているURLが詳しく書かれていてよいと思います。


ちなみに、参照設定をしておくと、プロパティやメソッドをオートコンプリートしたり、引数をポップアップ表示してくれたりするので便利です。

ExcelのVBAエディタから、[ツール]→[参照設定]で、

  • Microsoft Internet Controls
  • Microsoft HTML Object Library

の2つにチェックを入れておいてください。


その上で、

Dim objIE As Object

と書くのではなくて、

Dim objIE As InternetExplorer
Dim objDoc As HTMLDocument

Set objIE = CreateObject("InternetExplorer.Application")
objIE.GoHome

Set objDoc = objIE.Document

のように使います。


参照設定しておくと、

  • 「objIE.」まで入力すると自動的にプロパティやメソッドの一覧をオートコンプリートしてくれる
  • プロパティへの代入時に型(例えばBool型のプロパティならTrueとFalse)を表示してくれる
  • メソッドの記述時に、引数リストや型をポップアップ表示してくれる

などの利点があるので、リファレンスがなくてもそれなりにプログラムできてしまいます。


参照設定せずに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 )に代入してやることで、オートコンプリートが効くようになります。

id:tomokazu0525

大変大変勉強になりました!ありがとうございます!

紹介していただいたURLおよび、javascriptのページで勉強させていただきます!

2008/09/23 10:19:08

その他の回答1件)

id:youku554 No.1

回答回数95ベストアンサー獲得回数0

プログラミングの本を買ってください。http://www

id:tomokazu0525

どの言語かを知りたいのですが。

2008/09/21 18:17:47
id:ardarim No.2

回答回数897ベストアンサー獲得回数145ここでベストアンサー

ポイント100pt

基本的には上で挙げているURLが詳しく書かれていてよいと思います。


ちなみに、参照設定をしておくと、プロパティやメソッドをオートコンプリートしたり、引数をポップアップ表示してくれたりするので便利です。

ExcelのVBAエディタから、[ツール]→[参照設定]で、

  • Microsoft Internet Controls
  • Microsoft HTML Object Library

の2つにチェックを入れておいてください。


その上で、

Dim objIE As Object

と書くのではなくて、

Dim objIE As InternetExplorer
Dim objDoc As HTMLDocument

Set objIE = CreateObject("InternetExplorer.Application")
objIE.GoHome

Set objDoc = objIE.Document

のように使います。


参照設定しておくと、

  • 「objIE.」まで入力すると自動的にプロパティやメソッドの一覧をオートコンプリートしてくれる
  • プロパティへの代入時に型(例えばBool型のプロパティならTrueとFalse)を表示してくれる
  • メソッドの記述時に、引数リストや型をポップアップ表示してくれる

などの利点があるので、リファレンスがなくてもそれなりにプログラムできてしまいます。


参照設定せずに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 )に代入してやることで、オートコンプリートが効くようになります。

id:tomokazu0525

大変大変勉強になりました!ありがとうございます!

紹介していただいたURLおよび、javascriptのページで勉強させていただきます!

2008/09/23 10:19:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません