Windows API の GetTickCountは、Windowsが起動してからの時間をミリ秒で取得できます。それを利用しタイマーとし利用することもできます。
Windows API GetTickCountとは
■ GetTickCountの宣言
Declare Function GetTickCount Lib "kernel32.dll" () As Long
■ GetTickCountの構文
長整数型変数 = GetTickCount( )
GetTickCount使用例画面
入力したVBAコードです。
MyGetTickCountプロシージャは、Windowsが起動してからの時間を取得し、ミリ秒と秒で表示します。
MyGetTickCountTimerプロシージャはミリ秒単位で時間待ちを指定できるタイマーです。
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub MyGetTickCount()
Dim tim As Long
tim = GetTickCount()
MsgBox "パソコン起動からの時間:" & tim & "ミリ秒 (" & tim / 1000 & "秒)"
End Sub
Sub MyGetTickCountTimer()
Dim tim As Long
Dim sttim As Long
Range("E3") = "開始"
tim = Range("C3")
sttim = GetTickCount()
Do
If GetTickCount - sttim >= tim Then
Exit Do
End If
DoEvents
Loop
Beep
Range("E3") = "停止"
End Sub
VBAプログラムの説明
Windows API GetTickCountを宣言Declare Function GetTickCount Lib "kernel32.dll" () As Long
Subプロシージャの宣言
Sub MyGetTickCount()
長整数型の変数を宣言
Dim tim As Long
Windows API GetTickCountを実行
tim = GetTickCount()
パソコン起動からの時間をミリ秒と秒で表示
MsgBox "パソコン起動からの時間:" & tim & "ミリ秒 (" &
tim / 1000 & "秒)"
プロシージャの終了
End Sub
Subプロシージャの宣言
Sub MyGetTickCountTimer()
長整数型の変数を宣言
Dim tim As Long
長整数型の変数を宣言
Dim sttim As Long
E3セルに入力
Range("E3") = "開始"
指定時間をC3セルから取得
tim = Range("C3")
Windows API GetTickCountで開始時間を取得
sttim = GetTickCount()
Doループの開始
Do
Windows API GetTickCount - 開始時間と指定時間を比較
If GetTickCount - sttim >= tim Then
Doループの中止
Exit Do
If関数の終了
End If
Windowsに制御を一時戻す
DoEvents
Doループここまで
Loop
ブザー
Beep
E3セルに入力
Range("E3") = "停止"
プロシージャの終了
End Sub
Windows API GetTickCountの使用例マクロの実行画面
マクロ一覧から「MyGetTickCount」か「MyGetTickCountTimer」マクロを実行します。
MyGetTickCountマクロを実行すると、WIndows起動からの時間をミリ秒と秒で表示します。
事前にC3セルに待ち時間をミリ秒単位で入力しておいてください。
MyGetTickCountTimerマクロを開始すると、「開始」と表示されます。
待ち時間が経過すると、「停止」と表示されます。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.