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

「sheet 1」に、以下のような表があったとします。

    A   B   C   D    E
1       番号  氏名  住所  金額
2   印刷   1  山田  千葉  10
3   印刷   2  小林  東京  20
4         3  伊藤  静岡  30
5         4  鈴木  山形  40
6   印刷   5  田中  栃木  50

「sheet2」には、請求書の雛形があるとします。

「A行」で「印刷」と入力されている行のみ、請求書に転記し、請求書を連続印刷してくれるマクロが知りたいです。

上記の例の場合、請求書が3枚印刷されることになります。

説明不足がありましたらご指摘ください。

よろしくお願いします。

A 回答 (2件)

以前似たような質問に回答しました。


http://oshiete1.goo.ne.jp/qa3064424.html

今回のご質問との相違点は「A列に特定文字がある行だけ印刷する」ことだと思います。これはFor~Next文の中に条件判定の

 If oSht.Cells(idx, 1) = "印刷" Then
  ' 繰り返す処理
 End If

を追加すれば良いです。でも丸投げ回答したくないのでそこまでは具体的に書きません。ご自身でロジックを追加してみてください。

いずれにせよ質問&補足のシートは「例えば」の例ではないでしょうか。修正するのに多少なりともVBAの知識は必要ですよ。

この回答への補足

回答ありがとうございます!

ご指摘の通り、「例えば」の例です

今日、明日と、頂いた意見を下に、考えてみます

補足日時:2007/09/18 17:49
    • good
    • 0

A.データシート 質問の表のようなシート


B。請求書シート
ガあって、A->Bに必要な行データを転記(=代入)し、印刷する。
印刷はRange("A1:H20").PrintOutのようにする。
ただ質問では
(1)氏名ごとに考えて、複数明細(行)があることが見えないが、実際はあるのだと思いますがどうでしょう。
(2)印刷は必要の都度、小林さん分単独で印刷することが多いのかまたは、一斉作業で、山田・小林・田中を一遍に(別葉としても)
印刷するのか(臨時的な作業なのか、月次作業で一括全社作業なのか)書いてない。
前者では、抜き出し作業が起こるのだが、初等的な段階では、総なめ法(全行を山田かどうか比較して、該当を請求者シートに抜き出し)が良いでしょう。(ただし全データ行数が数千以下とする)。
VBAの学習が進めば、Findメソッドなどを使う。
後者なら、印刷+氏名でソートして、印刷行(印刷行がかたまるのだが)についてだけ、名前が変わるまで、請求書に転記し
名前が変わったとき印刷し、印刷した後、請求書の明細行・名前等をクリアすればよい。
ロジックはこんなものだと尾思うが、請求書の雛形が質問に出ておらず、コードは抱えないが、上記がヒントになってコードが書ける力があるのかな。

この回答への補足

回答ありがとうございます。

頂いた質問に回答します。

(1)氏名ごとに、複数明細(行)はありません。
 一人につき1行です。

(2)印刷は山田・小林・田中を一遍に印刷したいと考えています。

(3)雛形は、下記のようなものを考えています。

 「山田」の情報を「sheet2」に転記した場合

    A   B   C   D    
1    1     
2        山田    
3            千葉
4                20

その他ご不明な点がありましたら、ご指摘お願いします。

補足日時:2007/09/18 12:59
    • good
    • 0

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