最終更新日:2021-02-02ストップウォッチ(1/100秒)(Timer)ストップウォッチを作ってみましょう。・ボタンを押すと、0からスタートし時間表示が進む。・もう一度ボタンを押すとストップする。1つのボタンで、マクロをスタートさせたり、ストップさせたりする方法の紹介になります。1/100秒、つまり、ミリ秒単位で計測できるようにします。上記マクロVBAを標準モジュールに登録し、そのマクロを登録したボタンを、シートに追加して下さい。時間表示は、"A1"セルにしてあります。・表示形式を小数点以下2桁このように設定しておくと、ストップウォッチらしく見えると思います。上記のように、モジュールレベル変数を定義します。blnStartは、スタートしている間、Trueにします。blnStopは、ストップさせる時に、Trueにします。この2つの変数で、動きを制御している訳です。注意点マクロ実行中に、ボタン押下を可能とする為、ScreenUpdatingをFalseにはしない事です。DoEventsを入れる事になります。DoEventsが無いと、直ぐには停止しません。エクセルでマクロVBAを書いてストップウォッチそのものを作る事はあまりないと思います。ここでは、ストップウオッチを作るテクニックを紹介する事で、そのテクニックが、他で応用出来るだろうと言う事です。この方法は、時間のかかるマクロを途中で停止させたい場合に有効です。・ラップタイム(区間の時間)・スプリットタイム(その時点までの時間)これらを計測したいとの要望をいただきました。そこで、これらの機能を追加した機能強化版を作成しました。計算式の元となる数値定数を消去する(Precedents)指定のセルの計算式が参照しているセルの数値定数をクリアします。参照しているセルが、さらに他のセルを参照している場合は、その先のセルを消去します。計算式の入っているセルを起点にして、その参照先をすべて検索し、計算式の元となるセル(数値定数が入っているセル)の値をクリアします。Beep音で音楽(Beep,Sleep)時々検索されるので、Beep音で音楽を演奏してみましょう。プログラムはほぼAPIをCALLするだけです。