VBA 日付型に変換するCDate関数 日付型にできるか判定するIsDate関数

スポンサーリンク
スポンサーリンク

CDate 【シーデイト】関数

引数に指定したデータを日付型(Date)に変換するには、CDate 【シーデイト】関数を使用します。

CDate 【シーデイト】関数の書式

CDate(Expression)
【戻り値】日付型 (Date)


設定値(引数)の説明

  • Expression【エクスプレッション】(必須)
    日付型に変換したいデータを指定します。数値はシリアル値とみなされ、整数部分が日付、小数部分が時刻に変換されます。「平成29年5月20日」といった日付を表す文字列を指定することもできますが「曜日」を含んだり、「平成29年」のような年号のみを表す文字列を指定するとエラーになります。エラーを防ぐにはIsDate 【イズデイト】関数を使用して日付データに変換できるか確認してから使用します。

IsDate 【イズデイト】関数

引数に指定したデータが日付型(Date)に変換できるかできないかを判定してブール型の値で返します。

IsDate 【イズデイト】関数の書式

IsDate(expression)
【戻り値】 ブール型 (Boolean)


  • expression【エクスプレッション】(必須)
    日付型に変換できるかできないかを確認する値を指定します。

    戻り値 内容
    True 日付型に変換できます。
    False 日付型に変換できません。

ユーザーから受けたデータを日付型に変換できるか確認してから
日付型に変換するコード例

Sub 日付型変換()
Dim 日付 As Variant
戻る:
日付 = InputBox("生年月日を入力してください")
If IsDate(日付) Then
MsgBox "生年月日は" & CDate(日付) & "ですね"
Else
MsgBox "入力形式が違います"
GoTo 戻る
End If
End Sub

コードの解説

2行目【 Dim 日付 As Variant 】
Inputbox【インプットボックス】関数でユーザーから受け取る「生年月日」の文字列を格納する変数「日付」をバリアント型(Variant)で宣言します。


3行目【 戻る: 】
IsDate【イズデイト】関数を使用した条件分岐で条件が成立しなかったとき、つまり引数に指定したデータ型が日付型に変換できないとき9行目のGoTo【ゴウトゥ】ステートメントで処理が戻る位置(ラベル)です。


4行目【 日付 = InputBox(“生年月日を入力してください”) 】
Inputbox【インプットボックス】関数を使用して、ユーザーにデータを入力してもらい、変数「日付」に代入します。


5行目【 If IsDate(日付) Then 】
If【イフ】ステートメントを使用してIsDate【イズデイト】関数の戻り値が「True」のときを定義します。つまり、変数「日付」のデータが日付型に変換できるデータであるときを定義します。


6行目【 MsgBox “生年月日は” & CDate(日付) & “ですね” 】
5行目で条件が成立したとき、つまり、変数「日付」に格納されているデータが日付型に変換できるデータのとき、MsgBox【メッセージボックス】関数でデータを日付型に変換するCDate【シーデイト】関数を使用して日付データを表示します。


7行目【 Else 】
Else【エルス】ステートメントを使用して5行目の条件式が成立しなかったとき、つまり、変数「日付」が日付型に変換できないデータのとき、以下の処理を実行します。


8行目【 MsgBox “入力形式が違います” 】
MsgBox【メッセージボックス】関数を使用して、メッセージを表示します。


9行目【 GoTo 戻る】
GoTo【ゴウトゥ】ステートメントで処理を3行目の【 戻る:】ラベルまで戻します。


以上で、CDate【シーデイト】関数 IsDate【イズデイト】関数の解説を終了します。
ありがとうございました。

日付・時刻関数一覧表

日付や時刻の関数一覧表です。
関数名がリンクになっています。
クリックすると詳細説明ページが開きます。
関数名説明
Date現在の「日付」を取得します。
Year日付から「年」を取得します。
Month日付から「月」を取得します。
Day日付から「日」を取得します。
DatePart年・月・日を部分的に取得します。
Now現在の「日時」を取得します。
Time現在の「時刻」を取得します。
Hour時刻の「時」を取得します。
Minute時刻の「分」を取得します。
Second時刻の「秒」を取得します。
Weekday曜日を表す「整数値」を取得します。
WeekdayName曜日を表す整数値を「曜日名」に変換します。
DateSerial年・月・日を表す整数値から日付データに変換します。
TimeSerial時・分・秒を表す整数値から時刻データに変換します。
DateDiff日付や時間の間隔を計算します。
DateAdd時間を加算または減算した日付や時刻を取得します。
Timer経過した秒数を取得します。
CDateデータ型を日付型に変換します。
IsDate日付や時刻として扱えるかを調べます。
DDateValueateValue日付を表す文字列式を日付型(Date)に変換します。
TimeValueTimeValue時刻を表す文字列式を日付型(Date)に変換します。

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク