ExcelVBA 日付データから「月を取得」「月初や月末を求める」方法

 

ExcelVBA  日付データから「月を取得」「月初や月末を求める」といった処理を行うことで、データの集計やレポート作成を効率化できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA  日付データから「月を取得」「月初や月末を求める」|シーン

以下のシーンで利用します。

1.指定した日付の「月」だけを取り出す。

2.「月の最終日」を求めて、月末締めのデータを抽出する。

3.「月初日」を求めて、月ごとの処理を行う。

 

Excel VBA 「月を取得」「月初や月末を求める」サンプルコード

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

指定した日付の「月」を取得

標準モジュール
指定した日付の「月」を取得するには Month 関数を使用します。

Option Explicit

Sub GetMonth()
    Dim targetDate As Date
    targetDate = Date ' 今日の日付を取得
    MsgBox "対象の日付の月は " & Month(targetDate) & " 月です"
End Sub

今日が 2025年2月15日 なら、メッセージボックスに「対象の日付の月は 2 月です」と表示されます。

 

指定した日付の「月初日」を取得

標準モジュール
指定した日付の月初日は 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」と表示されます。

指定した日付の「月の最終日」を取得

標準モジュール
下記は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日)

注意点
1.うるう年の考慮
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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。