文字列からシリアル値を取得する
日付として解釈できる文字列をDate値に変換し、シリアル値を表示します。
実行前に確認
- 文字列の日付解釈は地域設定に依存します。年月日の順序が曖昧な文字列を避けてください。
- Excelの1904年日付システムのシリアル値とは異なります。
1サンプルコード
Sub Example1144()
Dim s As String
s = "2026/10/01"
If Not IsDate(s) Then
MsgBox "日付に変換できません。"
Exit Sub
End If
MsgBox CDbl(DateValue(s))
End Sub図で見る操作の流れ
イメージ図コードに沿った概念図です。実際の画面や実行結果ではありません。
入力文字列
s = "2026/10/01"
マクロ:日付判定
IsDateで変換できるか確認し、DateValueでDate値へ
マクロ:数値を表示
CDblでVBAの日付シリアル値にしてメッセージ表示
日付に変換できなければ案内して終了。地域設定で解釈が変わります。Excelの1904年日付システムとは異なります。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。入力セルは不要です。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
sの文字列を変換したい日付に変更します。
- 4
マクロ内にカーソルを置いてF5で実行します。文字列から作ったVBAの日付シリアル値が表示されます。