日付として妥当ではない文字列を日付として扱おうとするとエラーとなります。
IsDate関数を使うことで、日付・時刻として妥当か確認することができます。
妥当である場合はTrueを返し、それ以外の場合にはFalseを返します。
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Sample8_10_1() Debug.Print IsDate("2010-08-22") Debug.Print IsDate("2010 08 23") Debug.Print IsDate("2010 8 24") Debug.Print IsDate("25 8 2010") Debug.Print IsDate("8/26/2010") Debug.Print IsDate("2010年8月27日") Debug.Print IsDate("平成22年8月28日") Debug.Print IsDate("H22年8月29日") Debug.Print IsDate("August 30, 2010") Debug.Print IsDate("Aug 31, 2010") Debug.Print IsDate("2010-13-01") Debug.Print IsDate("2010-2-29") End Sub |
実行結果
- ありえない日付などはFalseとなります。
ユーザー入力などは日付として扱う前に必ず妥当性の確認が必要です。
実行プログラム
1 2 3 4 5 6 7 8 9 |
Sub Sample8_10_2() If IsDate(Cells(2, 3).Value) Then MsgBox DateValue(Cells(2, 3).Value) Else MsgBox "入力値が不正です。" End If End Sub |