DateSerial関数:年・月・日から日付データを返すExcel VBA関数|月の末日を取得

DateSerialとは、引数の年・月・日からバリアント型の日付データを返す関数です。

引数が範囲を超えた場合、自動的に繰り上がります。例えば月に13を指定した場合、年が+1されます。-32768~32767の範囲を超えた場合はエラーになります。

日付の範囲が西暦100年1月1日 ~ 西暦9999年12月31日を超えた場合にもエラーになります。


構文: DateSerial(Year , Month , Day)

Year : 年を表す整数の数値を指定

Month : 月を表す整数の数値を指定

Day : 日を表す整数の数値を指定


Excel Tipsメニューに戻る

スポンサーリンク





DateSerial関数のVBA使用例

下の年・月・日が入力されているセルの値から日付を作成し表示します。
セルの値から日付を作成し表示する


DateSerialで日付に変換するVBAです。
DateSerialで日付に変換するVBA

Sub MyDateSerial()
    Range("C6") = DateSerial(Range("C2"), Range("C3"), Range("C4"))
End Sub

実行結果です。
日付が作成されC6セルに表示されています。
日付が作成されC6セルに表示された

DateSerial関数で月の末日を取得と繰り上がりのテスト

C2セル : Today関数を使用し、今日の日付を表示しています。
C3セル : 今日の日付から先月の末日を求めます。
C4セル : 今日の日付から今月の末日を求めます。
C5セル : 今日の日付から来月の末日を求めます。
C6セル : 年に5年、月に8ヶ月を加算し繰り上がりのテストを行います。
DateSerial関数で月の末日を取得と繰り上がりのテスト

DateSerial関数で月の末日を求めるVBAと、繰り上がりをテストするVBAです。
月の末日を求めるVBAと、繰り上がりをテストするVBA

・先月の末日は、今月の1日の日付からマイナス1しています。
・今月の末日は、今月の月にプラス1した来月の1日の日付から、マイナス1しています。
・来月の末日は、今月の月にプラス2した来来月の1日の日付から、マイナス1しています。
・今月の月は8月になっていますから、これに+8すると16月になってしまいます。正しく繰り上げが行われると、月は16月-12月で4月になり、年はプラス1されます。

Sub MyDateSerial()
    Range("C3") = DateSerial(Year(Range("C2")), Month(Range("C2")), 1) - 1

    Range("C4") = DateSerial(Year(Range("C2")), Month(Range("C2")) + 1, 1) - 1

    Range("C5") = DateSerial(Year(Range("C2")), Month(Range("C2")) + 2, 1) - 1

    Range("C6") = DateSerial(Year(Range("C2")) + 5, Month(Range("C2")) + 8, Day(Range("C2")))
End Sub

実行結果です。
先月・今月・来月の月の末日の日付が表示され、繰り上げも正常に行われています。
月の末日の日付が表示され、繰り上げも正常に行われた

スポンサーリンク







Excel Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved