【VBA】月初/月末の日付を取得する

VBAで
 ・月初の日付
 ・月末の日付
を取得できます!

VBA関数である
 ・Date関数
 ・Month関数
 ・Year関数
 ・DateSerial関数
を組わせることで取得できます!

PR

VBAコード

ここでは例として
 ・本日日付(=2021/11/14)から
 ・月初の日付
 ・月末の日付
を取得します。

Sub sample()

    '月初の日付を取得
    MsgBox ("月初:" & DateSerial(Year(Date), Month(Date), 1))
    
    '月末の日付を取得
    MsgBox ("月末:" & DateSerial(Year(Date), Month(Date) + 1, 0))

End Sub

Date関数」で「本日日付」を取得します。

Year関数」と「本日日付」を使用して、「現在の」を取得します。
Month関数」と「本日日付」を使用して、「現在の」を取得します。

「現在の」と「現在の」と「1」を引数にして
 ・「DateSerial関数」により
 ・「月初の日付」を取得
します。
※「現在の1 = 月初」となります。

Month関数」と「本日日付」の結果(=今月)に対し、「+1」することで「来月」を取得します。
※「今月 +1」で「来月」になります。

「現在の」と「来月」と「0」を引数にして
 ・「DateSerial関数」により
 ・「月末の日付」を取得
します。
※「現在の来月の0 = 先月の最後の日(=月末)」となります。

PR

実行結果

本日日付(=2021/11/14)から今月の
 ・月初の日付
 ・月末の日付
を取得できました。

月初の日付
月初の日付
月末の日付
月末の日付
PR

参考①

VBAでなく、シート上にExcel関数を使用して月初/月末を取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

指定した日付を起点にして「過去の日付」を取得することもできます。

詳細は以下の記事をご確認ください。



PR

参考③

上記で使用した以下の詳細は、公式サイトをご確認ください。

●Date関数


●Month関数


●Year関数


●DateSerial関数