教えて!ExcelVBA!

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

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

f:id:m_kbou:20200527075900p:plain

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

 

 

例題

<実行>ボタンをクリックした場合、A列に入力されている日付に50日後の日数を加算し、「去年以前か?」「今年の日付か?」「来年以降の日付か?」を判断して結果をB列に表示するプログラミング方法です。

[実行前]:

f:id:m_kbou:20200527075916p:plain

[実行後]:

f:id:m_kbou:20200527075929p:plain

 

プログラミング

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

[記述例]:

Sub サンプル()

  '↓処理①    
  Dim 行 As Long

  '↓処理②    
  For 行 = 2 To 7
    Select Case Left(DateAdd("d", 50, Range("A" & 行)), 4)
      Case Is < 2020
        Range("B" & 行) = "去年以前です。"
      Case Is = 2020
        Range("B" & 行) = "今年です。"
      Case Is > 2020
        Range("B" & 行) = "来年以降です。"
    End Select
  Next

End Sub

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

処理②:繰り返し処理
For~Next文を使用した2行目~7行目までの繰り返し処理を実施します。繰り返し処理の中で、最初にDateAdd関数を使用してA列日付に50日後の日数を加算します。次に加算した結果からLeft関数を使用して年のみを抽出します。最後にSelect文を使用して抽出した年が2019年以前であれば「去年以前です。」を、2020年であれば「今年です。」を、2021年以降であれば「来年以降です。」をB列に表示して下さい。

との内容になります。

f:id:m_kbou:20211221150511p:plain

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

 

ダウンロード

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

drive.google.com