和風スパゲティのレシピ

日本語でコーディングするExcelVBA

改ページプレビュー・ページレイアウトを設定する

ワークシートのウィンドウ表示モード
「標準」「ページ レイアウト」「改ページ プレビュー」
をVBAから設定する方法を解説します。

改ページ プレビュー

設定にはWindowオブジェクトの「View」プロパティを使用し、
以下のコードを実行します。

' 設定したいシートをアクティブに
Thisworkbook.Worksheets("○○").Activate

' アクティブシート(ウィンドウ)を 改ページ プレビュー モードに設定
ActiveWindow.View = xlPageBreakPreview

' アクティブシート(ウィンドウ)を ページ レイアウト モードに設定
ActiveWindow.View = xlPageLayoutView

' アクティブシート(ウィンドウ)を 標準 モードに設定
ActiveWindow.View = xlNormalView

ViewプロパティはWorksheetではなくWindowオブジェクトの機能であるため、
実行前に対象のWorksheetをActiveSheetにする必要があります。

※ Windowオブジェクト自体はブック名を渡して取得することもできますが、
ActiveSheetを変更するためには結局ActiveWorkbookを変更する必要があるためです。


ただしこのプロパティは複数の選択シートにも実行できますので、
すべてのシートに同じ設定を行いたい場合は以下のコードでも実行できます。

' すべてのシートを選択
Thisworkbook.Activate
Thisworkbook.Worksheets.Select

' すべてのシートを一括で標準モードに設定
ActiveWindow.View = xlNormalView

For文を書くより簡単ですので、この書き方も知っておきましょう。


また、このViewプロパティは読み取ることもできます。

例えば「ページレイアウト」になっているすべてのシートを「改ページプレビュー」に変更する場合は、以下のコードを実行します。

' 対象のブックをActivate
ThisWorkbook.Activate

' 全シートをループして順に選択
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    ws.Select

    ' ページレイアウトになっているシートを改ページプレビューに
    If ActiveWindow.View = xlPageLayoutView Then
        ActiveWindow.View = xlPageBreakPreview
    End If

Next

特定のシートにだけ設定を行いたいときは、
こちらのコードをカスタマイズしてご利用下さい。