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

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

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

コード

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

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

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

Public Property Get Now()
    Now = CDate("1999/12/31 23:59:59")  '日付を設定
End Property

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

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

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

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

Public Property Get Now()
    #If DebugMode = 1 Then
        Now = CDate("1999/12/31 23:59:59")  '日付を設定
    #Else
        Now = DateTime.Now
    #End If
End Property
タイトルとURLをコピーしました