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

Sub Print_Out_1() 'セルに値を設定しながら連続印刷する。印刷対象:アクティブシート

ActiveSheet.PageSetup.PaperSize = xlPaperB5
ActiveSheet.Unprotect Password:="0630"
ActiveSheet.PageSetup.PrintArea = "B11:O30"
'定数
Const conStart As Long = 1 '開始
Const conEnd As Long = 25 '終了
Const conStep As Long = 1 '間隔
Const conCell As String = "K7" 'セル番地

'変数
Dim i As Long
With Application
' .ScreenUpdating = False
With .ActiveSheet.Range(conCell)

For i = conStart To conEnd Step conStep
.Value = i
ActiveSheet.PrintOut

Next
End With
.ScreenUpdating = True
End With
MsgBox "印刷が完了しました。"
ActiveSheet.PageSetup.PrintArea = False



ActiveSheet.Protect Password:="0630"
End Sub


こちらのコードがあります。セルのK7に枚数を入れて印刷をしたいのですが、どう変更してもなりません。素人で、まったくわからず申し訳ないのですが教えて頂けないでしょうか・・・

質問者からの補足コメント

  • 違います。
    25枚印刷されてしまいます・・・
    コードを変更して、セルに印刷枚数を入れて印刷できるようにならないかと思って・・・;;

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/05/03 17:11

A 回答 (2件)

そういうことですよね・・・コードをよく見てませんで失礼しました。


下のコードではどうなりますか?(K7が空や数字以外の場合は0枚となります。)

Sub Print_Out_1()
'セルに値を設定しながら連続印刷する。印刷対象:アクティブシート

ActiveSheet.PageSetup.PaperSize = xlPaperB5
ActiveSheet.Unprotect Password:="0630"
ActiveSheet.PageSetup.PrintArea = "B11:O30"

'定数
Const conStart As Long = 1 '開始
Const conStep As Long = 1 '間隔
Const conCell As String = "K7" 'セル番地

'変数
Dim i As Long
Dim conEnd As Integer '終了

With Application
.ScreenUpdating = False
conEnd = Val(.ActiveSheet.Range(conCell).Value)
If conEnd >= 1 Then
For i = conStart To conEnd Step conStep
ActiveSheet.PrintOut
Next
End If
.ScreenUpdating = True
End With

MsgBox "印刷が完了しました。"
ActiveSheet.PageSetup.PrintArea = False
ActiveSheet.Protect Password:="0630"

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

できました~~~~w
ありがとうございます。助かりました・・;;

お礼日時:2021/05/03 17:51

これはどういう事でしょうか?1枚だけ印刷されるのですか?


>どう変更してもなりません。
この回答への補足あり
    • good
    • 0

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