「excel vba yyyymmdd値 日付チェック」
「excel マクロ 8桁日付チェック」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あることに気づきました。
yyyymmdd形式の8桁の数字が日付として扱えるデータかどうかをチェックする、Excelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
IsDate関数による日付チェック
まずは、基本を確認しましょう。VBAでデータが日付かどうかを判定するにはIsDate関数を使います。
If IsDate(ActiveCell.Value) Then
MsgBox "日付です。"
Else
MsgBox "日付ではありません。"
End If
アクティブセルに入力されている値が日付データなら「日付です。」日付データでなければ「日付データではありません。」というメッセージが表示されます。
8桁のyyyymmdd形式の数字をFormat関数で整形後に日付チェック
で、yyyymmdd形式の8桁の数字が日付データとして扱えるかどうかのチェックは、Format関数で整形してから行いましょう。
If IsDate(Format(ActiveCell.Value, "@@@@/@@/@@")) Then
MsgBox "日付です。"
Else
MsgBox "日付ではありません。"
End If
例えば、アクティブセルに「20150701」という8桁の数字が入力されているときに、「Format(ActiveCell.Value, "@@@@/@@/@@")」の結果は「2015/07/01」になり日付として扱えるので、「日付です。」というメッセージが表示されます。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでyyyymmdd形式の8桁の数字が日付かチェックする-IsDate関数・Format関数