教えて!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

 

プログラミング

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

[記述例]:

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

-------------------------------------------------

Sub サンプル()

    Dim 行 As Double
   
    For 行 = 2 To 7
        Range("B" & 行) = DateSerial(Year(Range("A" & 行)), Month(Range("A" & 行)) + 1, 1) - 1
    Next
   
End Sub

-------------------------------------------------

内容を説明すると、

A列に入力されている年月日について、Year関数を使用して「年」を、Month関数を使用して「月」を調べます。更に、調べた月に+1をする事で「翌月」を調べます。また、翌月第1日目である1を「日」とし、DateSerial関数にて調べた年・翌月・日を組み合わせた日付変換での翌月第1日目を調べます。最後に調べた翌月第1日目より1日前倒し(翌月第1日目 - 1)する事での入力されている年月に対する最終日を算出し、B列に表示して下さい。

との意味になります。

 

ダウンロード

上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。

1drv.ms