DateSerial関数
年月日の数字から日付を作ることが出来ます。
”年”と”月”と”日”が別々のセルに入力されているような表から、日付形式のデータ(シリアル値)を取得したいときなどに使います(^o^)
年・月・日には、年なら2021とか、月なら1~12、日なら1~30などの数値を指定します。
月や日に、ありえない数値(2月に30日など)入れた場合でも、EXCELが適切に処理してくれます。
EXCELの日付のシリアル値は、1900年1月1日から、9999年12月31日までです。その範囲を超えた日付は扱えないので注意してください。
実行サンプル
では早速実行サンプルです。
次のような一覧を用意しました。
A列に年、B列に月、C列に日の数値を入力しています。その3列を利用してD列にDataSerialを使って日付データを作成したいと思います。
先にコードです。
Sub sample()
'シートの指定
Dim sheet As Worksheet
Set sheet = ActiveSheet
'ループ用の変数
Dim i As Long
'D列に日付を入力する
For i = 2 To 6
With sheet
.Cells(i, 4) = DateSerial(.Cells(i, 1), .Cells(i, 2), .Cells(i, 3))
End With
Next
End Sub
実行すると次のような結果になります。
2行目・3行目は、問題ない指定なのでD列に日付がちゃんと入力されました。
4行目以降は、月や日付にありえない数値を指定していますが、D列にはそれを加味した結果が表示されていることが分かります。
4行目・・・2月に28日までしか無いため、2日後の3月2日が表示されている
5行目・・・14月は無いため、12月から2ヶ月後の2月が表示されている
6行目・・・0日は無いため、1日前の5月31日が表示されている
コメント