• 締切済み

エクセル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枚のシートにしか設定が反映されません。 どう直せばいいのでしょうか?よろしくお願いします。

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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

otasukey
質問者

補足

さっそくありがとうございます。 やはり、For Each~ Next で一枚ごとに設定するしか方法はないのでしょうか? まとめて一遍に設定したかったのですが。 VBAではなく、手作業で数枚のシートを作業グループにして設定する事が可能だったのでVBAでも可能かと思ったのですが。

関連するQ&A