連載
» 2014年08月26日 18時00分 公開

テストエビデンス取得自動化の秘技(後編):スクショをExcelに張り付けるのに役立つ4つのテクニック (3/3)

[薬師寺国安,PROJECT KySS]
前のページへ 1|2|3       

指定した時間にマクロを実行する

 スクショ撮影自動化や上記で紹介したさまざまな自動化マクロは時間を指定して実行したい場面も多いと思う。そのような場合は、「指定した時間にマクロを実行する」Tipsを応用することで問題を解決できる。今回紹介するのは、アラートをメッセージで表示する簡単なものだが、メッセージ表示する部分を適宜置き換えて使ってほしい。

 マクロを実装するに当たり図10のようになっているとしよう。Sheet1上の任意の位置に、「マクロ実行時刻を指定」用のセルと、「表示するメッセージ」のセル、「実行」ボタンを配置しておく。

図10 「マクロ実行時刻を指定」用のセルと、「表示するメッセージ」のセル、「実行」ボタンを配置した

 指定した時間にマクロを実行するには、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
リスト4 「指定した時刻にマクロを実行する」コード

 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
リスト5 「メッセージの表示」のコード

 2行目で表示するべきメッセージが未入力かどうか判定し、未入力の場合は警告メッセージを表示して処理を抜ける。それ以外は、6行目でセル「D6」に入力されたメッセージを表示するようにしている。

 図10の「実行」ボタンにリスト4のマクロを関連付け実行し、指定した時間が来ると図11のように表示される。

図11 マクロ実行する時刻を指定し、指定された時刻に指定されたメッセージが表示された

さまざまなTipsを駆使して作業を効率化しよう

 以上のように、さまざまなTipsを紹介したが、いかがだっただろうか。

 今回紹介したTipsはエビデンス用のスクショ撮影以外でも、活用できる場面は多いと思う。

 例えば、今回紹介したTips「指定した時間にマクロを実行する」は、利用場面が多いのではないだろうか。定期的にデータを撮り込み分析を実行する場合や、仕事に熱中するあまり、顧客との打ち合わせを忘れてしまいそうな場合に、このTipsを利用すると大いに役に立ち、実行漏れや、ドタキャンの心配もなく仕事に熱中できるのではないだろうか。

 また今回紹介したTipsの他にも、下記インデックスでは、エビデンス用のスクショ撮影でも活用できるTipsが満載なので、今回紹介したTipsと組み合わせてぜひ参照してほしい。特に「Excelのメニューに自作したマクロを追加するには」「右クリックメニューやサブメニューにマクロを登録/削除するには」などのTipsは、いちいちボタンを作成してマクロを呼び出すのが面倒な方は重宝するはずだ。

 今回前後編で紹介した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)。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。