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

エクセルの印刷マクロについて質問があります。
現在、下記のマクロで印刷しています。Sheet1のD6に開始値、E6に終了値を入力したらSheet2のH6〜Q6の値が入って印刷します。
例:Sheet1のD6→1、E6→100と入力。一枚目の印刷はSheet2のH6→1、Q6→10
2枚の印刷はH6→11、Q6→20
合計で10枚印刷します。
今まで10単位で入力していたので気がつかなかたのですがSheet1のD6→1、E6→15と入力します。
Sheet2の印刷は1枚しか出来ません。
教えていただけないでしょうか。よろしくお願いします


Sub Macro1()

Dim s As Long, e As Long, i As Long, n As Long
s = Sheets("Sheet1").Range("d6")
e = Sheets("Sheet1").Range("e6")
For i = s To e
n = n + 1
Sheets("Sheet2").Cells(6, 7 + n) = i
If n = 10 Then

Worksheets("Sheet2").PrintOut
Worksheets("Sheet2").PrintPreview

n = 0
End If
Next
End Sub

A 回答 (5件)

連投すみません


ご質問の内容だけに回答するつもりでいましたが、余計なコードを書いてしまいました

要件も出揃っていないですし 多分直しが必要でしょう
そもそもsやeの入力条件も分かりませんし
カウント変数iを条件分岐にするべきではないと思われます

#2の回答者様は要件のやり取りをしてくれる事が多いので
更なるアドバイス、作成が目的であれば、私を無視して #2様に補足して見てください
    • good
    • 0
この回答へのお礼

ありがとう

アドバイスありがとうございます

お礼日時:2023/06/12 17:34

ごめんなさい 実行しちゃったかな・・


変数nはCells(6, 7 + n) 使われていました・・・・
訂正します

Sub Macro1()

Dim s As Long, e As Long, i As Long, n As Long
s = Sheets("Sheet1").Range("d6")
e = Sheets("Sheet1").Range("e6")
For i = s To e
n = n + 1
Sheets("Sheet2").Cells(6, 7 + n) = i
If i >= 10 And i Mod 5 = 0 Then

Worksheets("Sheet2").PrintOut
Worksheets("Sheet2").PrintPreview

n = 0
End If
Next
End Sub

sの値など条件がありますけれど  とりあえず訂正します
    • good
    • 0

25の時どうするのかな?


10で1度目 それ以降は5回目毎 と言う事で条件設定すると
変数nがせっかくあるので利用して 下記のようになります
Sub Macro1()

Dim s As Long, e As Long, i As Long, n As Long
s = Sheets("Sheet1").Range("d6")
e = Sheets("Sheet1").Range("e6")
For i = s To e
n = n + 1
Sheets("Sheet2").Cells(6, 7 + n) = i
If n > 5 And i Mod 5 = 0 Then

Worksheets("Sheet2").PrintOut
Worksheets("Sheet2").PrintPreview

'n = 0
End If
Next
End Sub

変数nは初期化しません
    • good
    • 0

>Sheet1のD6→1、E6→15と入力します。


>Sheet2の印刷は1枚しか出来ません。

その場合、どのような結果を期待していますか?
    • good
    • 0

こんにちは


n = n + 1

If n = 10 Then
は10回繰り返し処理が行われたら

Worksheets("Sheet2").PrintOut
Worksheets("Sheet2").PrintPreview
が実行され カウント変数 n を初期化 (0に)しています

つまり、1~100なら10回 1~20なら2回です
1~19ならカウント変数が1度10になり最後は9で繰り返し処理が終わる為
1度しかメイン処理は行われません

もし改修を行いたいのであれば
何故 10回ループで1回の出力なのか、一回目のH6:Q6値はどうするのか
(5回目 H6:L6に値を入れるだけで印刷して良いか)などなど 情報が必要ですね
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。
Sheet1のD6→1,E6→15と入力します。
1枚目印刷のSheet2,H6→1,Q6→10です。
2枚目印刷のSheet2,H6→11,L6→15です。
このような事は可能でしょうか。よろしくお願いします

お礼日時:2023/06/12 12:15

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