プロが教えるわが家の防犯対策術!

Function HolidayName(シリアル値 As Date) As String
Dim 行 As Long
With Sheets("祝日一覧")
For 行 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(行, 1).Value = シリアル値 Then
HolidayName = .Cells(行, 2).Value
Exit Function
End If
Next
End With
End Function
---------------------------------------------------------------------------------
Sub 翌月平日のみ印刷()
Dim 開始日 As Date
Dim 終了日 As Date
Dim 印字日付 As Date
開始日 = CDate(Format(DateAdd("m", 1, Date), "yyyy/mm") & "/01")
終了日 = DateAdd("m", 1, 開始日) - 1
For 印字日付 = 開始日 To 終了日
If Weekday(印字日付) > vbSunday Then
If Weekday(印字日付) < vbSaturday Then
If HolidayName(印字日付) = "" Then
Range("A1").Value = 印字日付
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
End If
End If
Next
End Sub



このような式を教えていただき重宝しておりましたが、突如、どの月を入手しても5月の印刷が始まるようになってしまいました。考えられる原因と対策を教えていただければ幸いです。どうぞ宜しくお願い致します。

A 回答 (1件)

「どの月を入手しても」とは、どういう意味ですか?「翌月平日のみ印刷」と書いてある通り、実行した日を基準に翌月分を印字しているだけのような気がするのですが…4月分を印刷するにはプログラムを修正するか、パソコンの日付を3月に戻す必要があります。

    • good
    • 0
この回答へのお礼

なるほど…、完全に勘違いしてました。ママチャリさん、御指摘ありがとうございました!

お礼日時:2018/04/08 16:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!