初めてのIE操作(1)
初めてのIE操作(1)
IEベースの業務用Webアプリの操作がくっそダルかったので、生まれて初めてVBAからのIE操作にチャレンジしてみたら、意外と簡単だったので、報告。
業務用Webアプリ操作のために私が乗り越えなければならなかった壁は以下の通り。
この後、入力・確認したデータをサーバに送信するためにボタンをクリックしないといけないが、さすがにそこまで自動にするのは怖いのでとりあえず以上の4点。
厄介だったのが、ページのソースが通常の方法では表示されなかったこと。
その辺は、本編で追々……。
Webアプリ操作のために必要なこと
先にまとめておく。
まず、操作したいWebアプリのページのHTMLを取得することが必要。
次に、取得したHTMLソースを解析して、どの要素にどのような操作をすれば良いかを探る。
基本的にこれだけできたら良いだけなので、思っていたより簡単だった。
IEを起動してページを表示する
これは簡単。
基本的に、InternetExplorerオブジェクト(以下「IEオブジェクト」と言う。)を取得しさえすれば、あとはIEオブジェクトのNavigate
メソッドを実行するだけ。
コードは、
Dim targetIE As New InternetExplorer Call targetIE.Navigate("サイトのURL")
とするだけ。
WebアプリのページURLが分かるならこれだけでページを呼び出すことはできる。
URLが分からない場合は、ちょっとややこしいやり方が必要になる。
HTMLソースが通常の方法で表示されない場合と同じ苦労がいる。言い方を変えれば、HTMLソース問題さえ解決すれば、同時に解決するということ。たいした問題ではない。
実験
その前に、参照設定をしておくと便利。
このように、Microsoft HTML Object Library
とMicrosoft Internet Controls
にチェックを入れておく。
リスト1 標準モジュール
Public Sub test() Dim targetIE As New InternetExplorer With targetIE .Visible = True Call .Navigate("http://akashi-keirin.hatenablog.com/entry/2018/12/16/001606") End With End Sub
Visible
プロパティをTrue
にしているので、起動したIEは画面表示される。
Navigate
メソッドの引数には拙ブログの前回記事のURLを渡した。
コイツを実行すると、
ほれ、この通りIEで目標のページが表示された。
この後、開いたページにあれこれやっていくわけだが、それはまた次回。