受付簿をNo.を加算しながらループ印刷
1
2コード
'** '*機能:入力セルに値を増やしながら代入して印刷をループする '*要確認事項 '*@inputCell(入力セル) '*@NUM_DIFF(No.の増差) '*Wait(待機)する秒数 '* Sub 帳票数字代入印刷マクロ() 'プリンタ設定確認 Dim m As String: m = "" m = m & "現在のプリンタ設定:" & Application.ActivePrinter & vbNewLine m = m & "「片面印刷か両面印刷」は事前に手動保存してください。" & vbNewLine m = m & "プリンタ名と片面両面印刷は設定済みとして、印刷を続行してよろしいですか?" & vbNewLine If MsgBox(m, vbYesNo, "事前確認") = vbNo Then MsgBox "処理を中止します" Exit Sub End If '開始No設定 Dim fromNum As Variant fromNum = Application.InputBox( _ prompt:="開始No.を半角数字で入力してください。", _ Title:="開始No.入力", _ Type:=1) If fromNum = "False" Then MsgBox "処理を中止します" Exit Sub End If '印刷枚数設定 Dim printNum As Variant printNum = Application.InputBox( _ prompt:="何枚分印刷するか、半角数字で入力してください。", _ Title:="印刷枚数", _ Type:=1) If printNum = "False" Then MsgBox "処理を中止します" Exit Sub End If '最終確認 m = "" m = m & "プリンタ:" & Application.ActivePrinter & vbNewLine m = m & "片面両面設定:あなたが事前確認済" & vbNewLine m = m & "印刷開始番号:" & fromNum & vbNewLine m = m & "印刷枚数 :" & printNum & vbNewLine m = m & " 以上の内容で印刷してよろしいですか。" & vbNewLine If MsgBox(m, vbYesNo, "事前確認") = vbNo Then MsgBox "処理を中止します" Exit Sub End If '入力セル設定 Dim inputCell As Range: Set inputCell = Range("A5") '印刷1枚目 inputCell.Value = fromNum ActiveSheet.PrintOut Preview:=True '印刷2枚目以降 Dim i As Long '注)printNumが1枚のときは何もせずスルーできる For i = 2 To printNum '印刷に時間かかるので毎回処理を返す DoEvents '入力する数字に加算する数 Const NUM_DIFF As Long = 50 inputCell.Value = inputCell.Value + NUM_DIFF ActiveSheet.PrintOut Preview:=True '印刷に時間かかるので待つ Application.Wait (Now + TimeValue("0:00:05")) Next End Sub
3