このページでわかること
月末、月初の日付を簡単にとることができます。
覚えること
-
月末を取得するためには
例:2021年5月5日の日付から月末を取得する
その翌月=2021年6月5日を取得(DateAdd関数)
年(=2021:Year関数)と月(=6:Month関数)を取得
年/月/1という形で日付を取得(2021/6/1)
2021年6月1日の一日前=2021年5月の月末となる。
-
月初を取得するためには
例:2021年5月5日の日付から月初を取得する
その年(=2021:Year関数)と月(=5:Month関数)を取得
年/月/1という形で日付を取得(2021/5/1)
-
Month(日付) でその日付の月を数値で取得
-
DateAdd(追加の単位 , 追加したい数値 , 日付)で特定の日付から加算したり、減算
こんにちは、hokkyokunです。
年月日の取得や表記は実務で多くあると思います。
特殊な年月日を取らなきゃいけない機会ってありますよね。
例えば、月末、月初、年度、第一営業日、最終営業日!
変換するのも結構面倒で間違いやすい作業ですよね。
マクロ使って自動化しちゃいましょう。
ここでは月末と月初の取扱方法についてご紹介します。
スポンサーリンク
月末の取得方法
これ以外にも回答あるかもですが・・・
私の使っている方法です。
考え方は
- 特定の日付から月を取得(Month関数を使用)
- その月に一ヶ月加算=翌月を取る(DateAdd関数を使用)
- その翌月の1日の一日前=月末(DateAdd関数を使用)
具体的に言うと
2021年5月5日の日付から月末を取得したい場合
- その翌月=2021年6月5日を取得
- その年(=2021:Year関数)と月(=6:Month関数)を取得
- 年/月/1という形で日付を取得(2021/6/1)
- 2021年6月1日の一日前=2021年5月の月末となる。
Month関数とDateAdd関数は別の記事でご紹介しますが、
簡単に言うと
Month(日付)でその日付の月を取得できます。
例えば:Month(#5/5/2021#)で 「5」 を取得することが出来ます。
DateAdd(追加の単位 , 追加したい数値 , 日付)で特定の日付から加算したり、減算したりできます。
例えば:DateAdd("m", 1, #5/5/2021#) で2021年5月5日から「月」の単位を「1」加算した値が返されます。
すなわち 2021/6/5が返ってきます。
プロシージャはこんな感じです。
Sub 月末()
Dim myDate As Date '特定の日付
Dim nextMonth As Date '翌月の日
Dim nextMonth1stday As Date '翌月の日の一日
Dim endMonth As Date '目的の月末
myDate = #5/5/2021#
nextMonth = DateAdd("m", 1, myDate)
nextMonth1stday = Year(nextMonth) & "/" & Month(nextMonth) & "/" & 1
endMonth = DateAdd("d", -1, nextMonth1stday)
MsgBox ("月末は:" & endMonth)
End Sub
月初の取得方法
月末より簡単です。
- 特定の日付の年と月を取得
- 日付を1にして組み合わせる(年/月/1という形にする)
これも具体的に説明すると
2021年5月5日の日付から月初を取得したい場合
- その年(=2021:Year関数)と月(=5:Month関数)を取得
- 年/月/1という形で日付を取得(2021/5/1)
Sub 月初()
Dim myDate As Date '特定の日付
Dim fstDate As Date '月初
myDate = #5/5/2021#
fstDate = Year(myDate) & "/" & Month(myDate) & "/" & 1
MsgBox ("月初は:" & fstDate)
End Sub
まとめ
いかがでしょうか。
月末月初は日付操作の基本なので
覚えておいて損はないと思います。
次回は第一営業日(休みの日を除く)や最終営業日を取得してみたいと思います。
スポンサーリンク