『他の複数ブックの日付セルから印刷(以前の続き)』(キミコ) お世話になります。 二年ほど前に マナさん、Mookさんに教わり Sub test() Dim d As Date Dim ret Dim s As String Dim r As Range Dim m As Long d = WorksheetFunction.WorkDay(Date, 1) ret = Application.InputBox("印刷したい日付は?", "入力", Format(d, "yyyy/m/d")) If Not IsDate(ret) Then Exit Sub d = CDate(ret) s = Format(d, "m月") Dim wbPath For Each wbPath In Array( _ "C:\Users\キミ\Desktop\A.xlsx", _ "C:\Users\キミ\Desktop\B.xlsx") With Workbooks.Open(wbPath) On Error Resume Next Set r = .Sheets(s).Columns(2) m = Application.Match(CLng(d), r, 0) On Error GoTo 0 If m > 0 Then r.Cells(m).Resize(30, 7).Offset(0, -1).PrintPreview Else MsgBox wbPath & "では、その日付は印刷できません" End If .Close False End With Next End Sub この内容で「他の複数ブックの日付セルから印刷」しておりました。 ( http://www.excel.studio-kazu.jp/kw/20150218205042.html ) この内容ですと、各ブックに明日の日付がある場合は問題ないのですが 明日の日付がない場合、明日以降の一番近い日付を印刷してしまいます。 (今日動かした場合、4/19がブックにない場合、4/20を印刷) 日付がない場合、印刷しないようにしたいのですが どこを手直ししたらよいでしょうか? よろしくお願いします。 < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- > 明日の日付がない場合、明日以降の一番近い日付を印刷してしまいます。 そんなハズないと思うのですが・・・ m(日付のある行番号)の初期化を忘れているからじゃないですか? つまり、下の2行の間に初期化ステートメントを挿入したらどうですか? > With Workbooks.Open(wbPath)        m = 0 '←これを挿入 > On Error Resume Next (半平太) 2017/04/18(火) 16:08