サイトについて      連絡先   検索

VBA IsDate 関数

はじめに

Excel VBA マクロの IsDate 関数を紹介します。

IsDate 関数は、指定した値を日付型 (Date) に変換できるかを判定します。

文字列を「CDate 関数」で変換できるか判定したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

IsDate()
を日付型 (Date) に変換できるときは True を返します。それ以外のときは False を返します。

引数「式」判定したい値を指定します。
戻り値の型ブール型 (Boolean)

解説

日付や時刻に変換できるときはTrueを返します。でないときはFalseを返します。

引数「値」に日付形式の文字列"2000/1/1"などを指定するとTrueを返します。

引数「値」に数値を指定するとFalseを返します。しかし「CDate 関数」で日付に変換できます。

変換できるのは日付型の範囲西暦100年1月1日 ~ 西暦9999年12月31日の間です。

CDate 関数」は変換できないときにエラーが発生します。結果がTrueの時だけ変換すると、エラーの発生を防げます。

使用例


Dim b As Boolean

b = IsDate("2013/1/2")
Debug.Print(b) ' True

b = IsDate("2013年1月2日")
Debug.Print(b) ' True

b = IsDate("20130102")
Debug.Print(b) ' False

b = IsDate("1:2:3")
Debug.Print(b) ' True

b = IsDate("50/1/2")
Debug.Print(b) ' True ' 1950/1/2 と解釈されるため

b = IsDate("Tips")
Debug.Print(b) ' False

変換できるときだけ変換する。


Dim s As String
s = "Tips"
Dim d As Date

If IsDate(s) = True Then ' 変換できるときだけ実行する
    d = CDate(s)
End If

数値は変換できる。


Dim b As Boolean

b = IsDate("1")
Debug.Print(b) ' False

Dim d As Date
d = CDate("1")
Debug.Print(d) ' 1899/12/31
  • 目次
    • 構文
    • 解説
    • 使用例