【VBA】日付を比較する方法(文字列の日付を比較)
今回は日付の比較をする方法を紹介します。
日付型の比較は値と同じように比較演算子(<,>,=)を使えばOKです。
しかし、VBAを作っていると日付型ではなく文字列の日付を比較したいケースが出てくるかもしれません。
今回はそうしたケースを想定して文字列の日付を比較する方法を紹介します。
日付を比較する方法 (文字列の日付を比較)
Sub DateCompare()
'''文字列の日付を比較する
Dim str1 As String, str2 As String
str1 = "2023/3/23"
str2 = "2023/9/23"
''文字列型を日付型へ変換
Dim dt1 As Date, dt2 As Date
dt1 = CDate(str1)
dt2 = CDate(str2)
''日付を比較
If dt1 < dt2 Then
Debug.Print str1 & "よりも" & str2 & "の方が未来" '2023/3/23よりも2023/9/23の方が未来
End If
End Sub
文字列の日付を比較したい場合、文字列型を日付型へ変換する必要があります。
''文字列型を日付型へ変換
Dim dt1 As Date, dt2 As Date
dt1 = CDate(str1)
dt2 = CDate(str2)
このようにCDate関数を使って、文字列型⇒日付型へ変換します。
あとは簡単でdt1 < dt2のように比較演算子で比較するだけです。
CDate関数についてはこちらの記事をご覧ください。