Vba で文字列を日付に変換する方法 (例付き)
VBA のCDate関数を使用して、テキスト文字列を日付に変換できます。
この機能を実際に使用する一般的な 2 つの方法を次に示します。
方法 1: デフォルトの形式 (MM/DD/YYYY) を使用して文字列を日付に変換する
Sub ConvertStringToDate()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = CDate(Range(" A " & i))
Next i
End Sub
この特定のマクロは、 A2:A8の範囲内の各文字列を、デフォルトの日付形式 MM/DD/YYYY の日付に変換します。
たとえば、04/15/2023 というテキスト文字列は 04/15/2023 の日付に変換されます。
方法 2: カスタム形式を使用して文字列を日付に変換する
Sub ConvertStringToDate()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = Format(CDate(Range(" A " & i)), " MM.DD.YYYY ")
Next i
End Sub
この特定のマクロは、 A2:A8の範囲内の各文字列を MM.DD.YYYY 形式の日付に変換します。
たとえば、04/15/2023 というテキスト文字列は 04/15/2023 の日付に変換されます。
次の例は、Excel の次の文字列列で各メソッドを実際に使用する方法を示しています。
例 1: デフォルト形式を使用して文字列を日付に変換する
次のマクロを使用して、列 A の各文字列をデフォルトの MM/DD/YYY 形式の日付に変換できます。
Sub ConvertStringToDate()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = CDate(Range(" A " & i))
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 B は、列 A の各文字列をデフォルトの日付形式 MM/DD/YYYY の日付に変換することに注意してください。
例 2: カスタム形式を使用して文字列を日付に変換する
次のマクロを使用して、列 A の各文字列を MM.DD.YYY のカスタム形式の日付に変換できます。
Sub ConvertStringToDate()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = Format(CDate(Range(" A " & i)), " MM.DD.YYYY ")
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 B は、列 A の各文字列をカスタム MM.DD.YYYY 形式の日付に変換することに注意してください。
VBA のFormat関数を自由に使用して、日付を選択した形式で表示できます。
注: VBA CDate関数の完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。