【VBA】IE操作でボタンをクリックする2つの方法

2020年3月13日

今回は、VBAでIEを操作することをスクレイピング等と言いますが。

ユーザー
ユーザー

・VBAを活用してIEを操作したい!

・web上の検索ボタンを自動でクリックしたい!

 

そんな悩みにお答えして、

IE上のボタンを自動クリックする方法について解説していきましょう。

 

クリックしたボタンの名称を見つけよう!

 

クリックしたボタンの名称を取得するために、下記2つの点に注力しましょう!

 

Internet Explorer(IE)でサイトを開く

・Internet Explorer(IE)でサイト開きましょう。

注意するポイントとして、必ずブラウザは、Internet Explorerで開いて下さい。Chrome等ではなく、IEの方がソースコードを確認しやすいです。

 

表示➡ソースを選択

Internet Explorerで開いたら、「ツールバー」の「表示」から「ソース」を選択しましょう。

・「ツールバー」⇒「表示」⇒「ソース」

ここで、サイトのソースの一覧を見ることができますので、ここから自動クリックしたいボタン名を探しましょう!

 

参照設定を設定しよう!

続いて、VBAでIEを操作するためには、IEを操作するための参照設定の設定が必要です。

Excelを開いて参照設定の設定の仕方についてみていきましょう。

IEを操作する際には、そのプログラムを動作する環境が必要です。

その設定がこの「参照設定」で行うことができます。

参照設定箇所:マクロ ➡ ツール ➡ 参照設定

から変更しましょう。

 

<IE操作に必要な参照設定について>

  • IE control 6.0
  • Microsoft Internet Controls

 

このどちらか、もしくは両方にチェックを入れて、エクセルを保存して、再度立ち上げましょう。

これで、IEのプログラミング環境が整いました。

逆に言うと、この設定をしておかないと、プログラミングを記述してもエラーになりますので必ず設定を忘れないように!

 

 

ボタンを自動クリックする2つの方法とは

ボタンを自動クリックする方法には、2つの方法があります。

・「.Doucument.All.項目名.click」でボタンに名称がある場合

・ボタンに名称がない場合、Inputタグから探しだす方法

 

1.ボタンに名称がある場合

こちらをご参照下さい。

このように、ボタンに名称が登録されている場合には、

.Doucument.All.項目名.click」でボタンをクリックすることが可能です。

この際ボタンの名称がついているのであれば、項目名を取得できるのです。しかし、ボタン名が登録されていない、表示されていない場合があります。

 

2.ボタンに名称がない場合

※但し、この場合は項目名がきちんと登録されていた場合です。項目名がない場合には、これは使えませんので、もう一つの方法があります。

 

それは、「Inputタグ」から一つ一つのボタンを探していき、ボタンの名称から取得する方法です。

 

スクレイピングをしたいサイトのソースコードから探してみましょう。

 

プログラムソースコードの書き方

それでは、実際に、プログラムソースコードの書き方についてみていきましょう。

ボタンをクリックするイベントの書き方には、多数ありますが、まずこの2つの方法が試してみましょう。

下記をご参照下さい。

1.ボタン名がある場合のソースコードの書き方

【プログラムソースコードの書き方①】

まずは、ソースコードを確認してみましょう。もしソースコードに、ボタン名が、submitの記載近くにある場合には、それがボタンの名称です。

この場合には、上記のメソッドが利用可能です。

 

2.ボタン名がない場合ソースコードの書き方

プログラムソースコードの書き方②】

 

まずは、IEの起動をObject変数にセットしましょう。

そして、実際にNavigateで画面を表示します。

ここまでは、IEの起動と同じです。

そして、その画面を開いた後で、「.Doucument.All.項目名.click」で、そのボタンを取得し、選択することが可能です。

しかし、ボタン名がある場合には、この処理は可能ですが、

ボタン名の記載がない場合には、①の処理ではエラーが起こる可能性があります。その場合には、②の処理で記述してみましょう。

 

※但し、ここのソースコードの記述は、あくまで自動でクリックするための処理を記述しております。

ブラウザ待機時間等について別にて記載しておりますので、ご承知おきくださいね。

動作環境について

あくまでこの記述での動作環境は、

OS:windows7

Office:Office2007

 

での動作環境です。

※異なる環境で動作する保証はございません。あらかじめご了承下さい。

 

まとめ

このように、自動でボタンをクリックする方法は、「objIE.Document.All.ボタン名.click」でボタンを押下することが可能です。

但し、ソースコードの記載によっても取得が難しい場合がありますので、上記の処理を参考にしながら挑戦してみくてださいね。^^

何かわからないことがあれば、ご連絡下さい。