• 締切済み

VBAで自動印刷を行いたい

"A1"セルに数字の"1"が入力されて印刷、続いて"A1"セルに数字の"2"が上書されて印刷、 続いて"A1"セルに数字の"3"が上書されて印刷、・・・・というように指定した数字になるまで印刷を行う(指定する数字は"B1"セルに入力)にはどうしたらよいでしょうか? 下記のVBAを考えましたがうまくいきません。正しい記述を教えて下さい。 Sub 印刷() Dim myCnt As Long myCnt = 1 Do Until myCnt > Range("B1") Range("A1").Value = myCnt Sheets("Book1").PrintOut Copies:=1 myCnt = myCnt + 1 Loop End Sub

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

記述としては特に間違っているというところはないと思います。 試してみたところ、そのままでも実行可能です。(excel 2003) どのように「うまくいかない」のでしょうか?(エラーになるのか違う結果になるのか) まったくの想像で書けば、「Book1というシートがない」とすればエラーになりますが… また、sheet("Book1")がワークシートなら、Worksheets("Book1")としておいたほうが明確。 でも、同じものを複数枚印刷するのなら、Copies に枚数を設定してあげればよいわけで、ループする必要もないのでは? (差込印刷みたいなことを想定しているのでしょうか?)

masa2832
質問者

お礼

原因が分かりました。BooK1 ではなくて、Sheet1 でした。 大変お騒がせしました。申し訳ありません

masa2832
質問者

補足

「インデックスが有効範囲にありません」の実行時エラーがでます。 デバックを押すと、Sheets("Book1").PrintOut Copies:=1が黄色く表示されます。 同じものを複数枚印刷するのではなく、"A1"セルの数字を変えながら印刷するので、ループが必要ではないでしょうか?よろしくお願いします。