カスタマーサポートの憂鬱

気が付いたらカスタマーサポートがらみの界隈で12年も仕事してました。それに関係あったりなかったりですが、誰かに伝えるためというより、これは自分の覚書

VBA 祝日を判定する関数

Public Function holiday(tmp) As Boolean
Dim res

Set res = Sheet(1).Range("L2:L100").Find(what:=tmp, lookat:=xlWhole)
'ここではL列に祝日のテーブルを設定している
'該当する日付がL列になければFalseあればTrueを返す
If res Is Nothing Then
holiday = False
Else
holiday = True
End If

End Function

 24/365で正月も土日もなければ、エクセルの日付処理は楽なもんです。

土日に関してはweekday関数を使えば楽なものですが、祝日となると国によって違うこともあり、別テーブルの用意が必要になります

 ▼今年はこれくらい祝日があるようです

 元日 2017/1/1
成人の日 2017/1/9
建国記念の日 2017/2/11
春分の日 2017/3/20
昭和の日 2017/4/29
憲法記念日 2017/5/3
みどりの日 2017/5/4
こどもの日 2017/5/5
海の日 2017/7/17
山の日 2017/8/11
敬老の日 2017/9/18
秋分の日 2017/9/23
体育の日 2017/10/9
文化の日 2017/11/3
勤労感謝の日 2017/11/23
天皇誕生日 2017/12/23

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

 

support.office.com