【VBA】Time関数の返却値を現在時刻から指定時刻に偽装する方法

デバック時にTime関数の返却値を特定の時刻に偽装したいと思ったことはありませんか?

今回はTime関数で返却される時刻を偽装する方法を説明していきます。

コード

適当なモジュールに以下のいずれかのコードを挿入すればTime関数の返却値を偽装できます。

常に返却値を偽装する場合

常に返却値を偽装する場合は以下のコードでOKです。

Public Property Get Time()
    Time = CDate("23:59:59")  '時刻を設定
End Property

Time関数の返却値を現在の時刻に戻したい場合は、コードを削除してください。

条件付きコンパイル引数で切り替える場合

条件付きコンパイル引数を利用して、デバック時と本番時で動作を分けたい場合は以下のコードを使用してください。

DebugMode が1の場合は時刻を偽装し、0の場合は現在時刻を返却します。

Public Property Get Time()
    #If DebugMode = 1 Then
        Time = CDate("23:59:59")  '時刻を設定
    #Else
        Time = DateTime.Time
    #End If
End Property
タイトルとURLをコピーしました