- ベストアンサー
指定した回数複数のセルの値を貼付けて印刷するマクロ
以前 http://okwave.jp/qa/q7606899.html にて ご教授いただいたマクロについてなのですが、 複数のセルの値を、別のシートに貼り付けて印刷する事になり、 皆様に再度ご教授いただきたくよろしくお願い致します。 〇今回の質問 別のシート「印刷用シート」の左側の表に、 Sheet1のA2:B2 をコピーしたものを貼り付けて、 右側の表にSheet1のD2:E2 をコピーしたものを貼り付けて印刷。 これを3列目、4列目と繰り返して印刷したい(添付ファイルもご参照下さい)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まずうっかりでしたが、A,B列とD,E列にそれぞれ転記したいのでしたね。失礼しました。 既にあなたも出来ていたようですが、 sub macro1() dim s as long, e as long dim i as long if application.count(range("D2:D3"))=0 then exit sub s = range("D2").value e = range("D3").value if s = 0 then s = e if e = 0 then e = s for i = s to e worksheets("印刷対象シート")range("A12").value = cells(i, "A").value worksheets("印刷対象シート")range("B12").value = cells(i, "B").value worksheets("印刷対象シート")range("D12").value = cells(i, "D").value worksheets("印刷対象シート")range("E12").value = cells(i, "E").value worksheets("印刷対象シート").printout next i end sub といった具合です。「他のシートに転記する」「他のシートを印刷する」の書き振りは先の回答と何も変わりませんので、適宜応用してください。 で。 追加のご質問ですが >これをA2と、D2セルのみコピー、貼り付けする場合は、どのようにしたら良いのでしょうか。 >(A2を印刷用シートA12へ) >(D2を印刷用シートD12へ) なんだかいつの間にか「3行目、4行目も…」の部分がすっかりどっかに行っちゃいましたけど? それが今回ヤリタイ事なのでしたら、前述の「他のシートに転記する」「他のシートを印刷する」の一番単純化しただけの、ただの応用です。 sub macro2() worksheets("印刷対象シート")range("A12").value = range("A2").value worksheets("印刷対象シート")range("D12").value = range("D2").value worksheets("印刷対象シート").printout end sub
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
>〇今回の質問 : >これを3列目、4列目と繰り返して印刷したい 今回は?D2とD3は使わずに、ぜんぶ印刷しちゃいたいのですか? そうじゃなくて単に説明を手抜きしたと判断します。 D2とD3には、2から4のように行番号を入れたり入れなかったりする事にします #ぜんぶ印刷したいなら、D2とD3に最初と最後の数字を入れっぱなしにしとけば全部出ます。 sub macro1() dim s as long, e as long dim i as long if application.count(range("D2:D3"))=0 then exit sub s = range("D2").value e = range("D3").value if s = 0 then s = e if e = 0 then e = s for i = s to e worksheets("印刷対象シート")range("A10:B10").value = cells(i, "A").resize(1, 2).value worksheets("印刷対象シート").printout next i end sub
お礼
毎度回答ありがとうございます。 初歩的な質問にお付き合いいただき申し訳ありません。
補足
ご回答ありがとうございます。 Sub macro1() Dim s As Long, e As Long Dim i As Long If Application.Count(Range("G2:G3")) = 0 Then Exit Sub s = Range("G2").Value e = Range("G3").Value If s = 0 Then s = e If e = 0 Then e = s For i = s To e Worksheets("印刷用シート").Range("A12").Value = Cells(i, "A").Value Worksheets("印刷用シート").Range("D12").Value = Cells(i, "D").Value Worksheets("印刷用シート").PrintOut Next i End Sub ここまででほぼ想定通りの動作ができたのですが、 これをA2と、D2セルのみコピー、貼り付けする場合は、 どのようにしたら良いのでしょうか。 (A2を印刷用シートA12へ) (D2を印刷用シートD12へ) 引き続きご教授いただけると幸いです。
ご自分で組んでみたマクロと、それでどううまくいかないのかも書いてもらえますか?
お礼
おかげさまで想定していた動作ができるようになりました。 丁寧に回答いただき本当にありがとうございました。