アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロについてお尋ねいたします。

エクセルから印刷時に連番を自動的に印刷できるようにしたいと思いマクロを組みましたが
指定のセル(画像参照)に1を入力後、マクロを実行し印刷が始まり連番1番から50番までは自動的に印刷することに成功いたしました。
そのときに実行したモジュールの内容は下記のとおりです。
次に51番から100番まで印刷できるようにしたいと思い、
エクセルのセル内に51を入力し、モジュールの内容を書き換えマクロを実行してみましたが印刷に失敗いたしました。

Sub 印刷()

Dim no As Integer

Sheet1.Cells(3, 8) = ""
no = 1 ←ここを51書き換える

Do Until no > 50
Sheet1.Cells(3, 8) = no
Sheet1.PrintOut
no = no + 1
Loop


End Sub

どのようにしたら51番から100番まで印刷できるかご教授いただけませんか
よろしくお願い致します。

「エクセル連番自動印刷について」の質問画像

A 回答 (2件)

「000051」のように6ケタで表示はされないが、自分ならマクロではなくヘッダーにページ番号を割り当てヘッダの余白を大きく設定して3行目に表示・印刷されるようにする。



やり方は
「余白」からヘッダーの余白を3行目に表示されるよう値を大きくする(上1.9、ヘッダ2.8など)。
続いてヘッダで編集で
&[ページ番号]+50_
をヘッダに割り付ける。(50の後ろにあるアンダースコア(_)はスペースに置き換えること)
そして必要な数だけシートをコピーして増やす。(シートを50用意すれば良い)
そして50個のシートを選択して印刷する(一番はじめのシートを選択したらShiftキーを押しなら最後のシートを選択すると複数のシートを一度に選択できる)、


そのマクロは50ページまで50ページ未満のぺーじから
ページ番号を振りながら印刷するマクロだ。
Do~Loopの構文の意味を理解していないだろう。
    • good
    • 2
この回答へのお礼

勉強不足ですみません
ご教授いただいた方法は今後何かの折に活用させていただきたいと思います。
ご親切にありがとうございました。

お礼日時:2015/06/03 20:00

こんにちは!


>指定のセル(画像参照)に1を入力後・・・
とありますので、H3セルに「1」を入力し、マクロを実行されているのですよね?

それを「51」からというコトですので、H3セルに「51」を入力 → マクロ実行とすると

Sub Sample1()
Dim cnt As Long
Do Until cnt = 50 '//50まで
cnt = cnt + 1
Worksheets("Sheet1").PrintOut
With Range("H3")
.Value = .Value + 1
End With
Loop
End Sub

ではどうでしょうか?m(_ _)m
    • good
    • 5
この回答へのお礼

ご教授ありがとうございました。
勉強不足でしたので問題が解消できすっきりいたしました。
感謝申し上げます。

お礼日時:2015/06/03 19:51

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

このQ&Aを見た人はこんなQ&Aも見ています