【VBA】Date型から時刻を削除して日付のみにする方法

OutlookでVBAを作っていると、Date型から時刻の情報を削除したくなることがあります。
例えば、メールの送信日が今日か確認したいときなど。
そうしたケースを想定して、Date型から時刻を削除して日付のみにする方法をご紹介します。
Date型から時刻を削除して日付のみにする方法
時刻を削除するには、DateSerial関数を使うのがシンプルです。
DateSerial関数は、引数として年、月、日を指定してDate型の値を作成します。
Sub RemoveTimeFromDateTime()
Dim dt As Date
Dim dateOnly As Date
dt = Now
dateOnly = DateSerial(Year(dt), Month(dt), Day(dt))
MsgBox "dt: " & dt & vbCrLf & "dateOnly: " & dateOnly
End Sub
このように、DateSerial(Year(dt), Month(dt), Day(dt))とすれば日付のみの値を得ることができます。

このプログラムを実行すると、時刻付きの値と、日付のみの値を比較できるので確認してみてください。
Function GetOnlyDate(ByVal dt As Date) As Date
' dtを日付のみにして返す
GetOnlyDate = DateSerial(Year(dt), Month(dt), Day(dt))
End Function
このような使い回しやすい関数にしておくのもおすすめです。