【VBA】月の末日を求める

VBA

月の末日を求めるにはDateAdd関数を使用します。

コードと解説

コード

月の末日を求めるコードは以下になります。

 

コードの解説

Inputboxに入力された値がString型でdayStrに代入されます。

 

Inputboxでキャンセルが押されたときは、空白がdaystrに代入されます。
キャンセルが押されたら処理を中止します。

 

dayStrが日付に変換できないときは、エラーとして処理を中止します。

 

CDate関数を使用して、daystrをDate型に変換してdayに代入します。

 

DateAdd(“m”, 1, day)で入力された次月の日付を
戻り値としてnextMonthFirstDayに代入します。
入力値2018/7/24 → 2018/8/24

CDate(Format(nextMonthFirstDay, “yyyy/mm/”) & “1”)で
次月の1日を戻り値として取得しnextMonthFirstDayに代入します。
2018/8/24 → 2018/8/1

 

DateAdd関数を使用して、次月1日の前日を取得します。
2018/8/1→2018/7/31

使用例

コードを実行するとインプットボックスが表示されます。
yyyy/mまたはyyyy/m/dの形式で入力します。例:2018/7, 2018/7/24

 

入力した月の末日が表示されます。

 

文字列など、日付として認識できないものを入力するとエラーになります。

コメント