dポイントプレゼントキャンペーン実施中!

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


このような式で翌月分を印刷しておりますが、月を飛び越えたり遡ったりができません。
一年を通じて、任意で選んだどの月でも土日祝を省いた印刷ができるようにしたいのですが、可能でしょうか? 例えば、A1セルに「2018/7/1」と入手すると7月分が印刷される…など。
ご教授お願い致します。

A 回答 (1件)

「開始日 = CDate(Format(DateAdd("m", 1, Date), "yyyy/mm") & "/01")」を「

開始日 = Range("A1").Value」にするだけでは?
    • good
    • 0
この回答へのお礼

ありがとうございました!いつも助かります!またの機会宜しくお願い致します!

お礼日時:2018/04/08 18:33

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

このQ&Aを見た人はこんなQ&Aも見ています