• ベストアンサー

エクセル マクロ

A1からC3を選択して印刷範囲に設定、3行下のA6からC8を選択して印刷範囲に追加、3行下のA11からC13を選択して印刷範囲に追加・・・という感じで3行ごとに100回ぐらい繰り返すマクロってどうやるんでしょうか? 教えてくださいm(_ _ )m

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

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

エクセルの機能上の制約から、ご相談のことを一発で行うことはできません。 たとえば次のように工夫することはできます。 sub macro1()  dim i as integer, j as integer  dim s as string, buf as string  for i = 0 to 9   s = ""   for j = 1 to 60 step 6    s = s & "," & cells(i * 60 + j, 1).resize(3, 3).address   next j   activeworkbook.names.add name:="area" & i, refersto:=range(Mid(s, 2))   buf = buf & ",area" & i  next i  activesheet.pagesetup.printarea = mid(buf, 2) end sub あなたがホントにヤリタイ事に応じて、自力で適切に応用してご利用ください。

Sorara2013
質問者

お礼

わかりました、ありがとうございますm(_ _ )m

その他の回答 (2)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

印刷範囲に追加ではなくて印刷しなくていい行を非表示にしています。 D列以降にもデータがあるのであればA~C列を印刷範囲に設定して下さい。 Sub Macro1() For i = 4 To Cells(Rows.Count, "A").End(xlUp).Row Step 5 Rows(i & ":" & i + 1).EntireRow.Hidden = True '行の非表示 Next i ActiveSheets.PrintOut '印刷 Cells.EntireRow.Hidden = False '行の再表示 End Sub

Sorara2013
質問者

お礼

わかりました、ありがとうございますm(_ _ )m

  • keronjin
  • ベストアンサー率50% (83/166)
回答No.1

まず、【マクロの記録】機能であなたのやりたいことを1行程分(3行下に移る前まで)を記録してみましょう。 記録したらマクロのソースをエディターで編集します。 今回の場合だとセル番号を変数化して、For分などで100回繰り返すように改造すれば希望のものが作れると思います。

Sorara2013
質問者

お礼

わかりました、ありがとうございますm(_ _ )m

関連するQ&A

専門家に質問してみよう