このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

OutlookでVBAを作っていると、Date型から時刻の情報を削除したくなることがあります。
例えば、メールの送信日が今日か確認したいときなど。

そうしたケースを想定して、Date型から時刻を削除して日付のみにする方法をご紹介します。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

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

このような使い回しやすい関数にしておくのもおすすめです。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/10/17 14:04:07時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい