ExcelVBAでインターネットエクスプローラーを操作する【実践編】



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、前回の記事ではExcelでインターネットエクスプローラーを操作するメリットと準備を書いていきました。

今回は実際にインターネットエクスプローラー(以下IE)を操作する方法について解説していきたいと思います。

Excelでインターネットエクスプローラーを操作する【準備編】Excel×インターネットエクスプローラーそもそも「Excel VBAからIEを操作できる」と言っても、メリットがす...

ExcelVBAでInternetExplorerを操作してみよう

では実際にExcelVBAでIEを操作してみましょう!今回はVBAで【YahooJapan】に接続し、【E-VBA.com】を検索する、というコードです。

コードの解説

では、さっそくコードの解説をしていきます。

1.IEの表示設定

まずはIEを表示するかどうかの設定ですVisibleプロパティを使用します。【True】で表示【False】で非表示になります。

2.指定したURLに接続する

次に指定したURLに接続します。接続するにはNavigateメソッドを使用します。Navigateメソッドは引数に設定したURLが表示されます。下記の場合は「https://www.yahoo.co.jp/」を設定していますので「YahooJapan」が表示されます。

3.IEが表示しきるまで待機させる

IEが最後まで表示されるまで待機する必要があります。IEが表示されるまで待たないまま処理を続けてしまうとエラーが起きてしまうのです。理由は簡単です、表示されていないものをクリックするなどの処理をしろというのが無理な話ですよね?そこで使用するのが【readyState】です。

readyStateはIEのWEBサイトを読み込み中かを判断するプロパティです。引数4は読み込み終了を意味します。

下記のコードはreadyStateの条件が満たされる(読み込み終了)までループし続けるコードです。読み込みが終了したときに次のプログラムに移行します。

4.VBAで検索窓に文字を打ってみる

さて、ここからホームページの操作を始めます。ここから先はHTML(ハイパーテキスト マークアップ ランゲージ)が多少かかわってきます。HTMLについてはまた後日詳しく解説します。簡単に言うとホームページはHTMLで出来ていてタグという印(マークアップ)することでテキストに特殊な効果を持たせることができる。くらいに覚えておいてください。

そしてこのHTMLの構成を知っておくことで今回の【Excel × IE】で出来ることが変わってきます。

getElementsByNameとはname 属性で指定した名前で要素リストを参照します。といっても解らない方も多いかもしれません。

画像の赤枠の中に【Name=”p”】という部分がありますね?これがname属性です。

下記のコードはname属性のpを指定してpの中に”E-VBA.com”を入力しなさいというコードになります。

 

続きまして、今度はgetElementsByTagNameというコードが出てきましね、これも上のgetElementsByNameと原理は一緒です。

Inputタグの内容を取得し、objInput.outerHTMLの中から指定した(”検索”)を検索してその位置を取得しclickをするというコードです。

実際にコードを実行してみる

実際に実行してみましょう、おそらくこのような画面になれば成功です!(T_T)

お疲れ様でした。

最後に

いかがでしたでしょうか?今回はまだExcelでIEを操作し、検索するというだけの単純なものでしたが、今後私自身も勉強をしてさらに深いところまで開設できるようになりたいと思いますので今後に期待していてください!!

フォロー・チャンネル登録お願いします

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です