(Wordマクロ)ページ設定:余白

ページ設定のうち、余白のタブの内容をマクロで制御する方法を解説します。

このページで解説する項目は次の通りです。上から順番に解説します。




①余白(上下左右)

設定方法

ActiveDocument.PageSetupオブジェクトより設定します。

.TopMarginプロパティで、余白の上の数値を指定します。
.BottomMarginプロパティで、余白の下の数値を指定します。
.LeftMarginプロパティで、余白の左の数値を指定します。
.RightMarginプロパティで、余白の右の数値を指定します。

いずれのプロパティも、数値の単位の指定が可能です。数値の単位については、数値の単位についてを参照してください。また、ページの高さより大きな数値を指定した場合またはページの幅より大きな数値を指定した場合は、以下のエラーメッセージが表示されます。
<ページの高さより大きな数値を指定した場合>

<ページの幅より大きな数値を指定した場合>

使用例

Public Sub 余白設定()
'上下の余白を20mmに、左右の余白を15mmに設定する
With ActiveDocument.PageSetup
 .TopMargin = MillimetersToPoints(20)
 .BottomMargin = MillimetersToPoints(20)
 .LeftMargin = MillimetersToPoints(15)
 .RightMargin = MillimetersToPoints(15)
End With
End Sub

②とじしろ・とじしろの位置

とじしろの設定方法

ActiveDocument.PageSetupオブジェクトのGutterプロパティより設定します。このプロパティは数値の単位の指定が可能です。数値の単位については、数値の単位についてを参照してください。
また、極端に大きな数字を指定した場合(負の値を指定した場合)またはページの幅より大きな数値を指定した場合は以下のエラーメッセージが表示されます。
<極端に大きな数字を指定した場合(負の値を指定した場合)>

<ページの幅より大きな数値を指定した場合>

とじしろの位置の設定方法

ActiveDocument.PageSetupオブジェクトのGutterPosプロパティより設定します。
とじしろの位置は、通常のダイアログボックスから設定できる「上」「左」のほか、マクロでは「右」の設定も可能です。

とじしろの位置の定数 方向
wdGutterPosLeft
wdGutterPosRight
wdGutterPosTop

使用例

Public Sub とじしろ設定()
'とじしろを10mmに設定し、とじしろの位置を左にする
With ActiveDocument.PageSetup
    .Gutter = MillimetersToPoints(10)
    .GutterPos = wdGutterPosLeft
End With
End Sub

補足

本来、とじしろの位置を右にするのは、右から左に向かって書く言語向けの機能です。
右から左へ記述する言語と左から右へ記述する言語のどちらに基づいてとじしろを使用するかを設定するActiveDocument.PageSetup.GutterStyleプロパティも存在しますが、定数wdGutterStyleLatinwdGutterStyleBidiのどちらを選んでも見た目の表示は特に変わりません。

下記の画像を見ていただければわかりますが、ページ設定のダイアログボックス内のドロップダウンリストに不自然な余白があります。通常は選択できないようになっていますが、おそらくこの余白部分が「右」の設定なのでしょう。

③印刷の向き

設定方法

ActiveDocument.PageSetup.Orientationプロパティで設定します。
通常の設定と同じように、「縦」「横」のどちらかを指定可能です。

使用例

印刷の向きを縦にする

Public Sub 印刷の向き()
With ActiveDocument.PageSetup
    .Orientation = wdOrientPortrait '縦
End With
End Sub

印刷の向きを横にする

Public Sub 印刷の向き()
With ActiveDocument.PageSetup
    .Orientation = wdOrientLandscape '横
End With
End Sub




④複数ページの印刷設定

複数のプロパティがTrueまたはFalseになっているかによって、印刷の形式が「標準」「見開きページ」「袋とじ」「本(縦方向に谷折り)」「本(縦方向に山折り)」となるかが決定されます。

プロパティ 標準 見開きページ 袋とじ 本(縦方向に谷折り) 本(縦方向に山折り)
MirrorMargins False True False False False
TwoPagesOnOne False False True False False
BookFoldPrinting False False False True True/False
BookFoldRevPrinting False False False False True

また、「本(縦方向に谷折り)」「本(縦方向に山折り)」については、1冊あたりの枚数を指定できます。

1冊あたりの枚数は、ActiveDocument.PageSetup.BookFoldPrintingSheetsプロパティで指定します。
このプロパティはやや特殊な挙動を示し、「0」を指定すると「自動」、「1」を指定すると「すべて」、2以上の値を指定すると4の倍数が設定されます。たとえば、「4」を指定した場合は、(4-1)×4=12(ページ)として指定されます。

通常のダイアログボックスのドロップダウンリストでは40までしか指定できませんが、VBAにおいてはその限界を超えて指定できます。ただし、極端に大きな数字を指定すると以下のエラーメッセージが表示されます。

使用例

複数ページの印刷設定を標準にする

Public Sub 複数ページの印刷設定()
'標準にする
With ActiveDocument.PageSetup
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
End With
End Sub

複数ページの印刷設定を見開きページにする

Public Sub 複数ページの印刷設定()
'見開きページにする
With ActiveDocument.PageSetup
    .MirrorMargins = True
    .TwoPagesOnOne = False
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
End With
End Sub

複数ページの印刷設定を見開きページにする

Public Sub 複数ページの印刷設定()
'袋とじにする
With ActiveDocument.PageSetup
    .MirrorMargins = False
    .TwoPagesOnOne = True
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
End With
End Sub

複数ページの印刷設定を本(縦方向に谷折り)にする

Public Sub 複数ページの印刷設定()
'本(縦方向に谷折り)にする
With ActiveDocument.PageSetup
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = True
    .BookFoldRevPrinting = False
    .BookFoldPrintingSheets = 0 '自動
End With
End Sub

複数ページの印刷設定を本(縦方向に山折り)にする

Public Sub 複数ページの印刷設定()
'本(縦方向に山折り)にする
With ActiveDocument.PageSetup
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = False 'Trueでもよい
    .BookFoldRevPrinting = True
    .BookFoldPrintingSheets = 1 'すべて
End With
End Sub

補足

MirrorMarginsプロパティとTwoPagesOnOneプロパティを同時にTrueに設定した場合、エラーとはならず、MirrorMarginsプロパティが優先され、見開きページとなります。
同様に、TwoPagesOnOneプロパティとBookFoldPrintingプロパティを同時に設定した場合TwoPagesOnOneプロパティが優先され、袋とじとなります。
優先処理順は、MirrorMarginsプロパティ>TwoPagesOnOneプロパティ>BookFoldPrinting(BookFoldRevPrinting)となっていますので、複数ページの印刷設定をマクロで行う場合は、4つのプロパティを同時にTrue・False設定した方がよいでしょう。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください