教えて!ExcelVBA!

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

【ExcelVBA 関数】DatePart関数で年間通算日を調べる方法を教えて!

f:id:m_kbou:20200420123159p:plain

年間通算日を調べる方法について紹介します。調べるにはDatePart関数を使用します。

 

 

構文

記述方法は以下の通りとなります。

DatePart(”[時間間隔の単位]”,[評価の対象となる日付])

[説明]:

DatePart関数は指定した日付の同一年における時間間隔を整数値で返します。[時間間隔の単位]には時間間隔の引数を記述します。具体的には以下表のいずれかを記述し「”」(ダブルクォーテーション)で囲みます。[評価の対象となる日付]には起点となる日付を記述します。内容を纏めると、「[評価の対象となる日付]を起点に[時間間隔の単位]で指定した時間の間隔を数字で返して下さい。」との意味になります。

f:id:m_kbou:20200527162847p:plain

[記述例]:

DatePart("y", Date)

 

使い方

使い方について具体的に説明します。

[プログラミング例]:

Sub サンプル()
  MsgBox DatePart("y", Date)
End Sub

指定した日付が年間通算で何日目になるのかを調べるため、[時間間隔の単位]に「y」を指定します。yは起点とする日付をもとに年初から数えて通算何日目にあたるかを数値で返します。また、[評価の対象となる日付]には本日の日付である引数「Date」を指定する事で、本日と年初間の年間通算日を算出します。結果「本日が年初から数えて通算何日目にあたるかをMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210420081654p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210420081725p:plain

②結果は以下の様に表示されます。本日が2021/4/20となり年初から110日目にあたるため、MsgBoxで「110」が表示されます。

f:id:m_kbou:20210420081710p:plain

[サンプル]:

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

drive.google.com

年間通算日を調べる方法についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回は、年間通算日を調べる方法について説明しました。類似した内容に本日が年初から数えて何週目になるかを調べる方法があります。こちらも一緒に覚えておいて下さい。