【VBA入門】任意の日付を基準に、月末と月初を求めるモジュールを作って効率よく使う

【VBA入門】任意の日付を基準に月末と月初を求めるModule

Excel実務では、営業、経理、総務部門など、売上や支払いなど、締め日などの日付の取得や変換などが多いもの。

みなさん、こんにちは。セルネッツ竹本です。

今回は、「月末の求め方」をテーマに、解説をしたいと思います。

◆考え方(アルゴリズム)がわかれば簡単!

任意の日付が与えられたとき、当該月の月末は、何年何月何日か。

取得したいのは、それだけです。

考え方のポイントは、「翌月1日」を最初に求めることです。

それが分かれば、「その前日」が、求めたい月末です。

うるう年も、大の月、小の月、問題なく取得できるはずです。

なーんだ、やっぱり。という方も多いと思います。

比較的、よく登場する処理は、専用のModuleを用意しておくと流用がきき、効率があがります。

◆こんなモジュールでOKです。

Public P_Before日付 As String
Public P_戻り値 As String

‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Sub M_日付変換月末の取得(P_Before日付, P戻り値)
‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 '// 翌月1日を取得
P_戻り値 = DateSerial(Year(P_Before日付), Month(P_Before日付) + 1, 1)

'// 翌月1日の前日を取得
P_戻り値 = DateSerial(Year(P_Before日付), Month(P_Before日付) + 1, 0)

Debug.Print P_戻り値

End Sub


実は、日付の操作は、とても頻度の高い文字列操作のひとつでもあります。

締め日、支払日を求めたり、生年月日が日数を求めたり、いろいろあります。


今回のテーマは、「月末の求め方」について、解説を行いました。

本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください