
ExcelVBA 日付データから「月を取得」「月初や月末を求める」といった処理を行うことで、データの集計やレポート作成を効率化できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA 日付データから「月を取得」「月初や月末を求める」|シーン
以下のシーンで利用します。
1.指定した日付の「月」だけを取り出す。
2.「月の最終日」を求めて、月末締めのデータを抽出する。
3.「月初日」を求めて、月ごとの処理を行う。
Excel VBA 「月を取得」「月初や月末を求める」|サンプルコード
標準モジュール
指定した日付の「月」を取得するには Month 関数を使用します。
Option Explicit
Sub GetMonth()
Dim targetDate As Date
targetDate = Date ' 今日の日付を取得
MsgBox "対象の日付の月は " & Month(targetDate) & " 月です"
End Sub
今日が 2025年2月15日 なら、メッセージボックスに「対象の日付の月は 2 月です」と表示されます。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
指定した日付の「月初日」を取得
標準モジュール
指定した日付の月初日は DateSerial 関数を使うと求められます。
Option Explicit
Sub GetFirstDayOfMonth()
Dim targetDate As Date
targetDate = Date ' 今日の日付
MsgBox "月の初日は " & DateSerial(Year(targetDate), Month(targetDate), 1)
End Sub
今日が 2025年2月15日 なら、「月の初日は 2025/02/01」と表示されます。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
指定した日付の「月の最終日」を取得
標準モジュール
下記はDateSerial 関数を使い取得します。
Option Explicit
Sub GetLastDayOfMonth()
Dim targetDate As Date
targetDate = Date ' 今日の日付
MsgBox "月の最終日は " & DateSerial(Year(targetDate), Month(targetDate) + 1, 0)
End Sub
今日が 2025年2月15日 なら、「月の最終日は 2025/02/28」と表示されます。(うるう年なら29日)
DateSerial(Year(targetDate), 3, 0) を使えば、2月の最終日が28日または29日と自動判定される。
2.日付の入力ミスを防ぐ
IsDate 関数で入力値が正しい日付かチェックすると安全
Excel VBA 日付データから「月を取得」「月初や月末を求める」|まとめ
処理内容 | VBA関数 | 例 |
月の取得 | Month(Date) | 2(2025/2/15なら) |
月初日 | DateSerial(Year(Date), Month(Date), 1) | 2025/02/01 |
月末日 | DateSerial(Year(Date), Month(Date) + 1, 0) | 2025/02/28(うるう年は29日) |
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。