初めてのIE操作(1)

初めてのIE操作(1)

IEベースの業務用Webアプリの操作がくっそダルかったので、生まれて初めてVBAからのIE操作にチャレンジしてみたら、意外と簡単だったので、報告。

業務用Webアプリ操作のために私が乗り越えなければならなかった壁は以下の通り。

  1. VBAからIEを起動して目的のページを表示する
  2. 表示したページのリンクをクリックして、入力画面に移動する
  3. 移動先のページで諸データを入力する
  4. 入力データ確認のためのボタンをクリックする

この後、入力・確認したデータをサーバに送信するためにボタンをクリックしないといけないが、さすがにそこまで自動にするのは怖いのでとりあえず以上の4点。

厄介だったのが、ページのソースが通常の方法では表示されなかったこと。

その辺は、本編で追々……。

Webアプリ操作のために必要なこと

先にまとめておく。

まず、操作したいWebアプリのページのHTMLを取得することが必要。

次に、取得したHTMLソースを解析して、どの要素にどのような操作をすれば良いかを探る。

基本的にこれだけできたら良いだけなので、思っていたより簡単だった。

IEを起動してページを表示する

これは簡単。

基本的に、InternetExplorerオブジェクト(以下「IEオブジェクト」と言う。)を取得しさえすれば、あとはIEオブジェクトのNavigateメソッドを実行するだけ。

コードは、

Dim targetIE As New InternetExplorer
Call targetIE.Navigate("サイトのURL")

とするだけ。

WebアプリのページURLが分かるならこれだけでページを呼び出すことはできる。

URLが分からない場合は、ちょっとややこしいやり方が必要になる。

HTMLソースが通常の方法で表示されない場合と同じ苦労がいる。言い方を変えれば、HTMLソース問題さえ解決すれば、同時に解決するということ。たいした問題ではない。

実験

とりあえず、次のコードでVBAからIEを呼び出してみる。

その前に、参照設定をしておくと便利。

f:id:akashi_keirin:20181216170517j:plain

このように、Microsoft HTML Object LibraryMicrosoft 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を渡した。

コイツを実行すると、

f:id:akashi_keirin:20181216170529j:plain

ほれ、この通りIEで目標のページが表示された。

この後、開いたページにあれこれやっていくわけだが、それはまた次回。

参考

akashi-keirin.hatenablog.com

akashi-keirin.hatenablog.com

akashi-keirin.hatenablog.com