Excel:Windows APIを使用したタイマー - GetTickCountでミリ秒

GetTickCount関数を使用した、ミリ秒タイマーのVBAです。




Homeに戻る > Excel 日付・時間のTipsへ

Windows APIのGetTickCountはWindowsを起動してからの時間をミリ秒で返すことができる関数です。

この関数をタイマーで使うには、スタート時の時間を取得、その後ループで経過時間を計測することで行います。

Windows APIを使うには、Declareステートメントで宣言します。

構文は「Declare Function API名 Lib DLL名 (引数) As 型」になります。

同じ関連の「Timer関数を使用したタイマー」も掲載していますので、参考にしてください。



VBAでWindows APIを使用したタイマーの作成

Excel VBA シートコード

コマンドボタンクリックイベントの説明

  1. DeclareステートメントでGetTickCount関数を宣言します。
  2. 作成したExTimerプロシージャーを、引数10で呼び出します。引数10で10秒タイマーになります。
  3. ExTimerプロシージャー 引数を1000倍しミリ秒に変換します。
  4. スタート時の時間を取得します。
  5. Doループを実行します。
  6. 「現在時間-開始時間」が引数のタイマー時間と同じか、大きければループを抜けます。

'Windowsが起動してからの経過時間 API
Private Declare Function GetTickCount Lib "kernel32" () As Long

コマンドボタンクリックイベント
Private Sub CommandButton1_Click()
    CommandButton1.Caption = "Start"
    '10秒間タイマー
    ExTimer 10
    CommandButton1.Caption = "Stop"
End Sub

'タイマー
Private Sub ExTimer(tim As Long)
    Dim st As Long
    
    tim = tim * 1000
    '開始時間を取得
    st = GetTickCount
    DoEvents
    Do
        If GetTickCount - st >= tim Then
            '時間が経過した
            Exit Do
        End If
        DoEvents
    Loop
End Sub


Excel 実行結果

[Start]ボタンをクリックすると、10秒タイマーが実行し、終了するとボタンに「Stop」と表示されます。


Homeに戻る > Excel 日付・時間のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved