今回は、基本的な事ですが繰り返し処理についてです。
複数のセル、あるいはシートに対して同じような処理を繰り返し行わないといけないような時、あなたはどうしていますか?
・しょうがないので手作業で繰り返している。
・マクロで処理を繰り返し(コピー&ペーストして)書いている。
どちらも今一つですよね。
作業の対象がセルやシートすなわちオブジェクトなら、For Each 文を使いましょう。
例えば、私が良く経験する事としては、複数のシートをまとめて印刷する場合に、同じヘッダやフッタを設定したいというのがあります。
シートをグループ化して設定すれば出来そうなもんですが、出来ないんですよね。
次が、そのマクロです。
内容は非常に簡単です。全てのワークシートに対してSetPrintConfigOnAllSheetプロシージャを呼び出しているだけですね。
ということは、このプロシージャに処理を追加すれば色んな事ができるという事です。
Option Explicit Sub SetPrintConfig() Dim sht As Worksheet For Each sht In Worksheets SetPrintConfigOnAllSheet sht Next sht End Sub '右フッタにシート名印刷 Sub SetPrintConfigOnAllSheet(isht As Worksheet) With isht.PageSetup .RightFooter = "&A" End With End Sub