• ベストアンサー

指定した回数複数のセルの値を貼付けて印刷するマクロ

以前 http://okwave.jp/qa/q7606899.html にて ご教授いただいたマクロについてなのですが、 複数のセルの値を、別のシートに貼り付けて印刷する事になり、 皆様に再度ご教授いただきたくよろしくお願い致します。 〇今回の質問 別のシート「印刷用シート」の左側の表に、 Sheet1のA2:B2 をコピーしたものを貼り付けて、 右側の表にSheet1のD2:E2 をコピーしたものを貼り付けて印刷。 これを3列目、4列目と繰り返して印刷したい(添付ファイルもご参照下さい)

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

rabbit78
質問者

お礼

おかげさまで想定していた動作ができるようになりました。 丁寧に回答いただき本当にありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>〇今回の質問  : >これを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

rabbit78
質問者

お礼

毎度回答ありがとうございます。 初歩的な質問にお付き合いいただき申し訳ありません。

rabbit78
質問者

補足

ご回答ありがとうございます。 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へ) 引き続きご教授いただけると幸いです。

noname#220943
noname#220943
回答No.1

ご自分で組んでみたマクロと、それでどううまくいかないのかも書いてもらえますか?

関連するQ&A

専門家に質問してみよう