教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA プログラミング】(関数9)DateSerial関数のプログラミング例を教えて!

f:id:m_kbou:20200528072601p:plain

DateSerial関数を使用したプログラミング例を紹介します。

 

 

例題

<実行>ボタンをクリックした場合、A列に入力されている年月日についてDateSerial関数を使用し、対象年月の最終日をB列に表示するプログラミング方法です。

[実行前]:

f:id:m_kbou:20200528072619p:plain

[実行後]:

f:id:m_kbou:20200528072635p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  '↓処理①
  Dim 行 As Long
  Dim 年 As Long
  Dim 月 As Long

  '↓処理②
  For 行 = 2 To 7
    年 = Year(Range("A" & 行))
    月 = Month(Range("A" & 行))
    Range("B" & 行) = DateSerial(年, 月 + 1, 1) - 1
  Next

End Sub

処理①:変数定義
変数を定義します。

処理②:繰り返し処理
For~Next文を使用した2行目~7行目までの繰り返し処理を実施します。繰り返し処理の中で、年月日列(A列)に入力されている年月日の年をYear関数を使用して変数:年に、月をMonth関数を使用して変数:月にセットします。また、セットしたこれらの変数を使用してDateSerial関数の年には変数:年を、月には変数:月+1を、日には1をセットして翌月1日の調べます。調べた翌月1日より1日前倒し(翌月1日 - 1)する事で対象年月に対する最終日を算出する事ができるので、結果列(B列)に表示して下さい。

との内容になります。

f:id:m_kbou:20220111093811p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。

 

ダウンロード

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com