Sheet1のA1に入力した日が平日かどうか判断するVBAです。
Sub 曜日確認()
'検索する日
nday = Sheets("Sheet1").Range("A1")
'日のシリアル値を表示
a = Weekday(nday)
'日の曜日を表示
b = WeekdayName(Weekday(nday))
'Findメソッドで祝日シートから祝日を検索 祝日シートは内閣府より 全一致
Set week = Sheets("祝日").Range("A:A").Find(what:=nday, LookAt:=xlWhole)
'祝日ではない場合weekがエラーの時
If week Is Nothing Then
'土日の場合か平日の場合かの条件分岐
Select Case a
Case 7 '土曜日
MsgBox nday & "は、" & b & "です。"
Exit Sub
Case 1 '日曜日
MsgBox nday & "は、" & b & "です。"
Exit Sub
Case Else
End Select
'平日の時の操作
MsgBox "完了"
Else
'祝日の場合
MsgBox week.Offset(0, 1)
End If
End sub
定数 | 値 | 内容 |
vbSunday | 1 | 日曜日 |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
祝日シートに内閣府の国民の祝日CSVを貼り付ける方法はこちら↓
コメント