ページ)システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。VBAのインストール方法と使い方、スクリーンショットを自動でExcelに張り付ける方法について解説した。後編では、エビデンスとしてスクショを撮り、成果物としてテスト仕様書や納品書に張り付ける際に役立つ、以下の4つの便利なTipsを紹介する。WebDriver」などで、実行結果のスクショを画像ファイルとして保存している場合もあるだろう。VBAで自動化できると非常に効率的だ。このTipsを実行するには、画像ファイルを任意の場所に置いておく必要があるが、今回は「C\VBAImage」フォルダーに、画像を配置している前提とする。フォルダーは適宜アレンジしてほしい。マクロを実装するに当たり、図1のようになっているとしよう。「コンボボックス」を配置し「コントロールの書式設定」を完了したExcelメニューの[開発]→[挿入]と選択して「コンボボックス」を配置する。次に、「C\VBAImage」フォルダーに配置した画像名を、「U1:U10」に入力する。配置した「コンボボックス」を選択して、マウスの右クリックで表示されるメニューから、[コントロールの書式設定]を選択する。表示される画面から、[入力範囲]に画像名を入力した「U1:U10」までを指定する。次に「リンクするセル」に、「T2」を指定しておく。ここには、「コンボボックス」から選択されたインデックス番号が表示される。次にセル「T5」にINDEX関数を使って、「コンボボックス」から選択されたインデックス番号に該当する画像名を表示する。INDEX関数の書式は下記の通りだ。INDEX関数の書式INDEX({範囲},{行番号}){範囲}には「U1:U10」を指定し、{行番号}にはセル「T2」に表示された「コンボボックス」から選択された画像名のインデックス番号を指定する。下記のような表記になる。関数を入力する場合は先頭に必ず「=」と入力する。=INDEX(U1:U10,T2)ここからは、実際にマクロを記述してみよう。画像ファイルをワークシートに張り付けるには、PicturesコレクションのInsertメソッドを使用する。Editor)のメニューから、[挿入]→[標準モジュール]と選択する。プロジェクトにModule1が追加されるので、Module1をダブルクリックして、表示されるエディター画面内にリスト1のコードを記述する。画像を表示するコード3行目では、画像を削除する「画像の削除」プロシージャ(リスト2)を呼び込んでいる。このプロシージャは別のプロシージャとして用意している。4行目では、セル「T6」に、セル「T5」の値を表示している。セル「T5」にはINDEX関数の計算式が入っているため、画像名を指定する場合には、このセル「T5」は使用できない。そこで、セル「T5」の値を、セル「T6」に表示させて、画像名には、このセル「T6」の値を指定する。セル「B2」を選択して(6行目)、ここを左隅上として画像を張り付けているPictures.Insertメソッドに、パスとセル「T6」の値を連結して指定する(7行目)。これで「コンボボックス」より選択した画像が順次表示されていく。画像を削除するコードこのコードの中身については、Tips「オートシェイプの種類を設定して表示する」のリスト2の解説と全く同じであるため、簡単に説明しておこう。このコードはセル「B2」にかかった画像があった場合は、その画像を削除している。「コンボボックス」を選択して、マウスの右クリックで表示されるメニューから、「マクロの登録」を選択し、リスト1のマクロを関連付ける。実行すると図2のように、「コンボボックス」から選択された画像が、セル「B2」を左隅上として表示される。「コンボボックス」から選択した画像が表示されたまた今回のTipsでは、分かりやすいように1枚の画像を選択して張り付けるようにしているが、連続で張り付ける場合は、Insertメソッドをファイルの数だけ実行するようにアレンジする必要があるので、注意してほしい。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。