スクショをExcelに張り付けるのに役立つ4つのテクニック:テストエビデンス取得自動化の秘技(後編)(3/3 ページ)
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。後編は、画像ファイルをシートに張り付け、Excel 2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。
指定した時間にマクロを実行する
スクショ撮影自動化や上記で紹介したさまざまな自動化マクロは時間を指定して実行したい場面も多いと思う。そのような場合は、「指定した時間にマクロを実行する」Tipsを応用することで問題を解決できる。今回紹介するのは、アラートをメッセージで表示する簡単なものだが、メッセージ表示する部分を適宜置き換えて使ってほしい。
マクロを実装するに当たり図10のようになっているとしよう。Sheet1上の任意の位置に、「マクロ実行時刻を指定」用のセルと、「表示するメッセージ」のセル、「実行」ボタンを配置しておく。
指定した時間にマクロを実行するには、Ontimeメソッドを使う。
指定した時間にマクロを実行するOntimeメソッドの書式
{オブジェクト}.Ontime EarliesTime:=TimeValue({マクロを実行する時刻}),Procedure:="{実行するプロシージャ}",LatestTime:=TimeValue("{プロシージャを実行する最終時刻}"),Schedule:=True|False
{オブジェクト}には、Applicationオブジェクトを指定する。「EarliesTime」の引数「TimeValue」には、{マクロを実行する時刻}を指定、引数「Procedure」には、{実行するプロシージャ}を指定、引数「LatestTime」には{プロシージャを実行する最終時刻}を指定(省略可能)、引数「Schedule」には「Ontimeメソッドの設定を有効にする(True「既定値」)、無効にする(False)を指定する。これも省略可能だ。
Module1内に、リスト4のコードを記述する。
Option Explicit Sub 指定した時刻にマクロを実行() Dim 時刻 As Date 時刻 = Range("D5").Value If Range("D5").Value = "" Then MsgBox "マクロを実行する時刻を入力してください。" Exit Sub Else Application.OnTime EarliestTime:=TimeValue(時刻), Procedure:="メッセージの表示" End If End Sub
3行目でDate型の変数「時刻」を宣言し、4行目でマクロを実行する時刻の入力されている、セル「D5」の値を格納する。
5行目でマクロを実行する時刻が指定されているかどうか判定し、指定されていない場合は、警告メッセージを表示して処理を抜ける。時刻が指定されている場合は、9行目で指定した時刻に「メッセージの表示」プロシージャを実行するようにしている。
ここで使用しているTimeValue関数は時刻を返す関数だ。「10:10:10」(10時10分10秒の意味)の書式で入力する。
次は「メッセージの表示」のコードだ(リスト5)。
Sub メッセージの表示() If Range("D6").Value = "" Then MsgBox "メッセージを入力してください" Exit Sub Else MsgBox Range("D6").Value End If End Sub
2行目で表示するべきメッセージが未入力かどうか判定し、未入力の場合は警告メッセージを表示して処理を抜ける。それ以外は、6行目でセル「D6」に入力されたメッセージを表示するようにしている。
図10の「実行」ボタンにリスト4のマクロを関連付け実行し、指定した時間が来ると図11のように表示される。
さまざまなTipsを駆使して作業を効率化しよう
以上のように、さまざまなTipsを紹介したが、いかがだっただろうか。
今回紹介したTipsはエビデンス用のスクショ撮影以外でも、活用できる場面は多いと思う。
例えば、今回紹介したTips「指定した時間にマクロを実行する」は、利用場面が多いのではないだろうか。定期的にデータを撮り込み分析を実行する場合や、仕事に熱中するあまり、顧客との打ち合わせを忘れてしまいそうな場合に、このTipsを利用すると大いに役に立ち、実行漏れや、ドタキャンの心配もなく仕事に熱中できるのではないだろうか。
また今回紹介したTipsの他にも、下記インデックスでは、エビデンス用のスクショ撮影でも活用できるTipsが満載なので、今回紹介したTipsと組み合わせてぜひ参照してほしい。特に「Excelのメニューに自作したマクロを追加するには」「右クリックメニューやサブメニューにマクロを登録/削除するには」などのTipsは、いちいちボタンを作成してマクロを呼び出すのが面倒な方は重宝するはずだ。
Excelマクロ/VBAで始める業務自動化プログラミング入門」と「VBA/マクロ便利Tips」のリファレンス
※Tipsの環境:Windows 8.1 Enterprise(64ビット)+Excel 2013
今回前後編で紹介したTipsで、今までのエビデンスの作成方法がより簡略化できると思う。ぜひ読者の皆さんも、この方法を自分なりにアレンジして、使ってみていただきたいと思う。
著者プロフィール
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev(Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
Copyright © ITmedia, Inc. All Rights Reserved.