LoginSignup
34
45

More than 5 years have passed since last update.

IE操作とスクリーンショット撮りを自動化するExcelVBAモジュールを書いた。

Last updated at Posted at 2014-08-05

概要

法人向けのシステム開発業務では、セキュリティの観点から自動テストのフレームワークを導入できない事があります。
そのような環境でもUIの自動テストを行えるように、ExcelVBAでIE操作とスクリーンショット撮りができるクラスモジュールを用意しました。
MITライセンスで公開致しますので、ご自由にご改修下さい。
※内容に関しては、製作時間5時間なので色々とご容赦下さい。

コード

https://gist.github.com/nezuQ/421dc273ab20bde2e170
 ※SJISのコードは日本語が文字化けする為、UTF8に変換したコードも載せました。
 ※クラスモジュールのエクスポートファイルの拡張子が.cls、標準モジュールのが.basです。それらのエクスポートファイルはVBEからインポートできます。

注意事項

参照設定が必要です。

・Microsoft HTML Object Library
・Microsoft Internet Controls

32bit版PCで使う時はコード修正が必要です。

keybd_event関数とShowWindow関数は、
実行PCが32bit版か64bit版かで関数の書き方が変わります。
64bit版の関数を使い、32bit版の関数はコメントアウトしています。

動作確認は自PCでのみ行いました。

・Windows7(64bit版)
・Excel2010

API

開く(第1引数:URL文字列)

IEを最大化画面で起動し、指定のURLのWebサイトを開きます。

フォーカスを当てる(第1引数:画面コントロールのID)

ID指定した画面コントロールにフォーカスを当てます。

入力する(第1引数:テキストボックスのID, 第2引数:値)

ID指定したテキストボックスに値を入力します。

ラベルで選ぶ(第1引数:ドロップダウンリストのID, 第2引数:ラベル)

ID指定したドロップダウンリストで指定項目を選択状態にします。
ラベル(表示名)で指定します。

番号で選ぶ(第1引数:ドロップダウンリストのID、第2引数:番号)

ID指定したドロップダウンリストで指定項目を選択状態にします。
番号(インデックス)で指定します。

値で選ぶ(第1引数:ドロップダウンリストのID, 第2引数:値)

ID指定したドロップダウンリストで指定項目を選択状態にします。
値(Option.Value)で指定します。

クリックする(第1引数:画面コントロールのID)

ID指定した画面コントロールをクリックします。

型と値でクリックする(第1引数:画面コントロールの種類, 第2引数:画面コントロールの値)

画面コントロールの種類(ex.input)と値(Value)で指定した画面コントロールをクリックします。

待つ(第1引数:秒数)

指定した秒数だけ処理を止めます。

全体を撮る(第1引数:シート名, 第2引数:セル名)

スクリーンショット(全体)を撮り、指定のシート名・セル名の場所に貼り付けます。

アクティブ画面を撮る(第1引数:シート名, 第2引数:セル名)

スクリーンショット(アクティブ画面)を撮り、指定のシート名・セル名の場所に貼り付けます。

評価する(第1引数:関数名, 第2引数:引数1, 第3引数:引数2)

上記の関数を名前(文字列)で呼び出します。
第2引数は呼び出し先の第1引数に、第3引数は呼び出し先の第2引数に渡されます。
ワークシートに関数とその引数を書き連ねて実行していきましょう!

スクショ(デモ実行の結果)

先のクラスモジュールには、デモ実行のコードも付けています。
その実行結果をスクショで残します。

IEが起動し、指定画面が開かれる
1.gif

検索欄に値が入力され、又、表記替えボタンが押される
2.gif

並び順の選択が変わる
3.gif

検索ボタンが押される
4.gif

感想

最初スクショを撮らずに記事を書いたけど、説得力がなくてビビった。
先のコードで本当に話している通りの動作ができるのか納得できない。
写真を提示された時の説得力は違う。

追記(2014/08/11)

ExcelVBA製のInternetExplorer向けUIテストツールを作ってみました。
■nezuQ/PaperTester
https://github.com/nezuQ/PaperTester

34
45
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
45