こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2003-04-02 14:09:18

QNo.512944

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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

投稿日時 - 2003-04-02 15:40:13

補足

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

投稿日時 - 2003-04-02 16:49:48

あなたにオススメの質問