みなさん、こんにちは!
いよいよこのシリーズが書けると思うとワクワクしていますタカハシ(@ntakahashi0505)です。
エクセルVBAでInternetExplorerを操作できるのはご存知ですか?
意外と知らない方も多いようなのですが、VBAをやるからにはこのテクニックを身に着けておかない手はありません。
なんせ、自動で情報収集ができちゃいますから。
何回かに渡って、VBA初心者向けとしてエクセルVBAでIEを操作する方法をお伝えしていきます。
今回の記事ではその導入編。エクセルVBAでIEを操作するときに最初にすべきセッティングと動作確認までをやってみたいと思います。
まず、そもそもとしてのエクセルVBAのセッティングについては以下の記事などをご覧になって完了させておいて下さいね。これも10分ほどで終わりますから。
ではよろしくお願いします!
エクセルVBAでWEBスクレイピング
ネット上にある情報を1回だけ取りに行くだけなら、そのページを開いて情報を入手するVBAプログラムを組むのはバカバカしいですが
- 定期的に特定のサイトの情報を収集している
- 例1:ランキング
- 例2:金融情報
- 同じタイプの大量のページから情報を収集する
- 例3:カタログ
などの場合はプログラミングをしたほうが楽をできます。
WEBスクレイピングというのですが、IEを操作してWEBページのデータを取得して、エクセルのデータとして取りこんだり加工したりということを自動で行うプログラムを組むことができます。
いったんプログラムを組んで実行すればコンピュータが自動で確実にやってくれます。その間、みなさんはお茶会でもしていればOK。
必要なものはエクセルとIEだけ。ほとんどの方はお仕事のPCに入っていますでしょ?
今からちょこっと勉強してできるようになっちゃいましょう!
IEを操作するためのセッティング
まず実際にプログラミングに入る前に、エクセルVBAでIEを操作するための参照設定でライブラリを追加する必要があります。
まずVBEを開いて頂いて、「ツール」→「参照設定」。
そうすると「参照設定」ウィンドウが開きます。山ほどライブラリが並んでいるのですが、スクロールして頭文字「M」を探してください。
そこで
- Microsoft HTML Object Library
- Microsoft Internet Controls
この二つのライブラリにチェックを入れてOKをします。
はい、これで準備は完了です!
簡単でしょ?
IEを操作してWEBページを開いてみる
では細かいことは気にせず以下のプログラムを実行してみましょう。
Sub MySub()
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "https://tonari-it.com/"
End Sub
実行すると…
IEを操作して「いつも隣にITのお仕事」のトップページを開くことができましたね。
このようにたったの4行でWEBページを開くことができます。
それぞれ解説をしていきますね。
InternetExplorerオブジェクトを準備して新しいIEをセット
まず、操作するIEを入れる”ハコ”つまりオブジェクト変数を準備します。
一般のDimによる変数宣言と一緒ですね。変数の型を「InternetExplorer」にするだけです。
次にそのハコに新しいIEをセットします。
上記プログラムでは
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
の部分です。
これでobjIEという名前でIEを操作することができるようになりました。
VisibleプロパティでIEを表示する
オブジェクト変数にセットしただけではIEは使えません。IEを画面に表示するというダンドリが必要です。
その際、このように書きます。
上記プログラムでは
objIE.Visible = True
の部分です。これでobjIEと名前をつけたIEが画面に表示されます。この時点ではまだ何のWEBページも表示されていない状態です。
Navigateメソッドで特定のURLを開く
IEで特定のURLのWEBページを開く際は
と書きます。「開くURL」は文字列型ですので、ベタ打ちするときはダブルクォーテーションで囲います。
objIE.Navigate "https://tonari-it.com/"
これでobjIEと名前をつけたIEで「https://tonari-it.com/」、つまり「いつも隣にITのお仕事」のトップページを開くことができます。
まとめ
難しそうと思われるかも知れませんが、あっという間にエクセルVBAでIEを操作する準備と動作確認ができましたね。
これから何回かにわたって、WEBページから色々と自動で取得するというのを課題にして、エクセルVBAでIEを操作するシリーズの連載をしていきたいと思います。
次回の記事はこちらです。HTMLについて簡単に説明をしつつ開いたページのHTMLドキュメントを取得する方法についてお伝えしています。
どうぞお楽しみに!
連載目次:エクセルVBAでIEを操作してWEBスクレイピング
IEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。
- 【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
- 【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得
- 【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
- 【エクセルVBAでIE操作】ページ内のリンク先URLを全部取得する
- 【エクセルVBAでIE操作】ディスクリプションなどの要素をname属性でGetする
- 【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetする
- 【エクセルVBAでIE操作】WEBページのテーブル要素を自動で取得する方法
- 【エクセルVBAでIE操作】WEBページのテーブル要素からセルのデータを取り出す方法
- 【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
- 【エクセルVBAでIE操作】検索結果一覧から記事タイトルを取得する方法
- 【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する
- 【エクセルVBAでIE操作】ページャーをめくって複数ページからデータを取得する
- 【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする
- 【エクセルVBAでIE操作】name属性を利用して画像ボタンをクリックする
- 【エクセルVBAでIE操作】alt属性・src属性を利用して画像ボタンをクリックする
コメント
visibleがvisivleになってますよ
ご指摘ありがとうございます!
修正をさせて頂きました。
しかし十カ月近く間違ったままでした…恥ずかしいです。