今回はセルに入力されている値が日付かどうかを判定する方法について紹介します。実は非常に簡単でTypeName関数を使うだけです。
TypeName関数の戻り値一覧は公式にまとめられています。
サンプルプログラム
セルに以下の値が入力されている際、TypeNameの返却値を出力してみました。 不思議なのが時間表示はDouble型と判定されますが、”yyyy/mm/dd hh:mm:ss”形式は日付型と判定されてしまうことです。ここは要注点かもしれません。
Option Explicit
Sub sample()
Debug.Print TypeName(Range("A1").Value) ' Date
Debug.Print TypeName(Range("A2").Value) ' Date
Debug.Print TypeName(Range("A3").Value) ' Double
Debug.Print TypeName(Range("A4").Value) ' Date
Debug.Print TypeName("1/14/2022") ' String
Debug.Print TypeName(#1/14/2022#) ' Date
Debug.Print TypeName("10:11:12 AM") ' String
Debug.Print TypeName(#10:11:12 AM#) ' Date
Debug.Print TypeName("1/14/2022 10:11:12 AM") ' String
Debug.Print TypeName(#1/14/2022 10:11:12 AM#) ' Date
End Sub