VB6・VBA関数メモ:IsDate関数

IsDate関数についてメモしておきます。
引数の値が日付または時刻かどうかを検証する関数になります。

どのような形式まで日付・時刻として扱われるか疑問だったので動作検証して…
…みようと思いましたが、
動作するパターンがあまりに多すぎて諦めましたw
(日本語だろうが英語だろうが大丈夫なパターンが多い;)
結構いろいろな形式にサポートされているようです。


概要

IsDate(Expression) As Boolean
機能 指定値が日付または時刻か否かを返す
引数 Expression 検証する値 Variant型
戻り値 日付または時刻の場合「True」
日付または時刻ではない場合「False」
Boolean型


使用例

説明記述例出力
日付(年月日)を指定した場合 IsDate(CDate("2011/1/1")) True
時刻(時分秒)を指定した場合 IsDate(CDate("12:34:56")) True
文字列を指定した場合 IsNumeric("abc") False


動作検証

説明記述例出力
「#」で囲った形式の場合、
Date型として扱われる
IsDate(#2011/1/31#)True
「MM/DD/YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("1/31/2011")True
「英語月 DD YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("January 31 2011")True
「英語月(略) DD YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("Jan 31 2011")True
「DD/MM/YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("31/1/2011")True
「DD 英語月 YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("31 January 2011")True
「DD 英語月(略) YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("31 Jan 2011")True
「DD/英語月/YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("31/January/2011")True
「DD/英語月(略)/YYYY」形式の文字列の場合、
Date型として扱われる
IsDate("31/Jan/2011")True
「YYYY年MM月DD日」形式の文字列の場合、
Date型として扱われる
IsDate("2011年1月31日")True
「和暦MM月DD日」形式の文字列の場合、
Date型として扱われる
IsDate("平成23年1月31日")True
「YYYY/MM/DD」形式の文字列の場合、
Date型として扱われる
IsDate("2011/1/31")True
「YYYY-MM-DD」形式の文字列の場合、
Date型として扱われる
IsDate("2011-1-31")True
「YYYY.MM.DD」形式の文字列の場合、
Date型として扱われない
IsDate("2011.1.31")False
「YYYY,MM,DD」形式の文字列の場合、
Date型として扱われる
IsDate("2011,1,31")True
「YYYY MM DD」形式の文字列の場合、
Date型として扱われる
IsDate("2011 1 31")True
全て漢字の場合、
Date型として扱われない
IsDate("一月二日")False
「HH:MM:SS」形式の文字列の場合、
Date型として扱われる
IsDate("12:23:34")True
「AM/PM HH:MM:SS」形式の文字列の場合、
Date型として扱われる
IsDate("AM 12:23:34")True
「午前/午後 HH時MM分SS秒」形式の文字列の場合、
Date型として扱われる
IsDate("午前 12:23:34")True
「YYYY/MM/DD HH:MM:SS」形式の文字列の場合、
Date型として扱われる
IsDate("2011/1/31 12:23:34")True
区切りのスペースは幾つあっても
Date型として扱われる
IsDate("2011     1     31")True
区切りのスペースは全角でも
Date型として扱われる
IsDate("2011 1 31")True


コメント
コメントする








    
この記事のトラックバックURL
トラックバック