プロが教える店舗&オフィスのセキュリティ対策術

エクセルで一行毎、一枚づつ自動でプリントアウトしたいです。

     A列   B列
5行目  品名   数量 
6行目  商品A   1
7行目  商品B  45
8行目  商品C   6
9行目  商品D   0
10行目 商品E   8
11行目 商品F   0
 :    :    :
 :    :    :

現在は
Sheet1に上のような表があり
Sheet2に製品明細の雛型がたくさん作ってあり、
品名と数量をSheet1から参照し入力された状態になっており
数量が0のもの以外を選択して手動で印刷しています。

今後は
製品明細の雛型は1つで
製品明細を1行毎を1枚に印刷し
数量が0のものは印刷しないように自動でできるようにしたいです。
どのようなマクロを作れば良いのでしょうか?

A 回答 (3件)

参考にしてください。

最初は添付の様な簡単なシートで実験してみて意味がわかったら
実務のファイルに応用してください。
データがたくさんあると沢山印刷されて大変でしょうから。
Sub ボタン1_Click()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("B" & i).Value > 0 Then
Sheets("Sheet2").Range("B4").Value = Range("A" & i).Value
Sheets("Sheet2").Range("B5").Value = Range("B" & i).Value
Sheets("Sheet2").PrintPreview
End If
Next
End Sub

For~Nect でA列のデータの数だけ繰り返す
If文で B列が 0以上の場合に実施
Sheet2のB4セルに A列、B5セルにB列を入れる
Sheet2の印刷プレビュー と云ったところです。

うまく出来たら
PrintPreview をPrintOut にしてください
    • good
    • 2
この回答へのお礼

ありがとうございました。
簡単なデータを作って実験したところ、思うような結果が出ました。

お礼日時:2010/11/07 18:50

Googlreで「imogasi 請求書」で照会すれば、私が過去に回答した方法と、その他の回答者のやり方も出てきます。


私のはVBAを最小限にしか使わない(VBA初心者を意識した、関数利用を最大限生かした)方法で、行数だけ、(印刷範囲).PrintOutの1行を繰り返すだけです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
今後の参考用に「お気に入り」に保存しておきたいと思います。

お礼日時:2010/11/07 18:55

>どのようなマクロを作れば良いのでしょうか?


http://oshiete.goo.ne.jp/qa/6294342.html
↑ #8で回答したように、For~Next とIFの組み合わせになると思います
最終行の取得は
Range("A" & Rows.Count).End(xlUp).Row
といった具合。


# 基本的に丸投げは回答が付きません。
# 正確に状況が把握できないと作ってくれる回答者もでてきません。
# 的を絞って質問すると回答が付きやすくなります。
    • good
    • 0

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

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