今回は、VBAのタイマー機能を利用した時計のサンプル・プログラムを紹介したいと思います。VBAのタイマーの分解能は1秒という仕様のようです。従って、サンプルとしては、時計機能(アナログ・デジタル)がちょうど良いのではないかと思い、公開しました。アニメーションのようなプログラムを作成するには、もう少し、高い分解能のタイマーが欲しいところです。
ソースコードが以下からダウンロード出来ますので、参考にしてみてください。ソースコードは、Microsoft社の製品 エクセル向けに書いたものなので、利用するには、ご使用のコンピュータに、エクセルがインストールされていることが、必須条件です。
以下がエクセルで動作しているサンプル画像です。
MSDNで、タイマー起動のメソッドを調べてみると、EarliestTimeの値と、_ScheduleにFalseを指定することで、タイマーをキャンセルできるようです。複数タイマーを起動するような場合は、管理テーブルなどにより、タイマーを管理して、キャンセル処理など実装することが望ましいと思います。今回の場合は、単純にフラグでタイマーを終了するようにしています。
MSDN:
Application.OnTime メソッド (Excel)
式: OnTime (EarliestTime、Procedure、_LatestTime、_Schedule)
※ _ は省略可能な引数です。
ちなみに以下は私が、作成したタイマー管理モジュールです。ダウンロードして、インポートしてみてください。今回のサンプルには、使用していません。
モジュール:mdl_timer_manager.bas
<使い方>
作者は、本ソフトウェアの使用または使用不能から生じるコンピュータの故障、情報の消失、その他あらゆる直接的及び間接的被害に関して一切の責任を負いません。
ご使用にあたり、改善の要望、不具合の発生等ありましたら、画面下のアドレスまで、ご連絡頂きますよう、宜しくお願いいたします。ご面倒、ご不便をお掛けしますが、宜しくお願いいたします。