- ベストアンサー
エクセル マクロ
A1からC3を選択して印刷範囲に設定、3行下のA6からC8を選択して印刷範囲に追加、3行下のA11からC13を選択して印刷範囲に追加・・・という感じで3行ごとに100回ぐらい繰り返すマクロってどうやるんでしょうか? 教えてくださいm(_ _ )m
- みんなの回答 (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 あなたがホントにヤリタイ事に応じて、自力で適切に応用してご利用ください。
その他の回答 (2)
- mar00
- ベストアンサー率36% (158/430)
印刷範囲に追加ではなくて印刷しなくていい行を非表示にしています。 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
お礼
わかりました、ありがとうございますm(_ _ )m
- keronjin
- ベストアンサー率50% (83/166)
まず、【マクロの記録】機能であなたのやりたいことを1行程分(3行下に移る前まで)を記録してみましょう。 記録したらマクロのソースをエディターで編集します。 今回の場合だとセル番号を変数化して、For分などで100回繰り返すように改造すれば希望のものが作れると思います。
お礼
わかりました、ありがとうございますm(_ _ )m
お礼
わかりました、ありがとうございますm(_ _ )m