【Excel VBA】日付を検索し平日時のみ操作する方法

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
定数内容
vbSunday1日曜日
vbMonday2月曜日
vbTuesday3火曜日
vbWednesday4水曜日
vbThursday5木曜日
vbFriday6金曜日
vbSaturday7土曜日

祝日シートに内閣府の国民の祝日CSVを貼り付ける方法はこちら↓

コメント

タイトルとURLをコピーしました