- 締切済み
エクセルVBAで複数ページのページ設定
SheetAAAA,SheeetBBBB,SheetCCC,SheetDDDDの4枚(すべてのシートです)を選択し、ページ設定をしてマクロの記録をとりました。 Sub Macro6() Sheets(Array("AAAAA", "BBBBB", "CCCCC", "DDDDD")).Select Sheets("AAAAA").Activate With ActiveSheet.PageSetup .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With End Sub (不必要部分はカットしました) 自分で4枚を同時選択しページすると4枚すべてに反映するのですが、マクロの記録でつくったMacro6だと、1枚のシートにしか設定が反映されません。 どう直せばいいのでしょうか?よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 このコードでは、2行目の Sheets("AAAAA").Activate で、シート"AAAAA"をアクティブにして、そのアクティブにしたシートにのみ、With内の設定を行うことになります。 ブック内の全てのシートが対象なら、以下のようにすれば出来ます。 Sub Macro6() Dim mySheet As Worksheet For Each mySheet In Worksheets mySheet.Activate With ActiveSheet.PageSetup (各設定) End With Next mySheet End Sub
補足
さっそくありがとうございます。 やはり、For Each~ Next で一枚ごとに設定するしか方法はないのでしょうか? まとめて一遍に設定したかったのですが。 VBAではなく、手作業で数枚のシートを作業グループにして設定する事が可能だったのでVBAでも可能かと思ったのですが。