(Wordマクロ)改ページと改行設定の仕方

改ページと改行タブ内の設定をマクロで制御します。その他の段落設定については、逆引き段落設定を参照してください。

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




プロパティ

それぞれの設定に紐づくプロパティは以下の通りです。

プロパティ 説明
WidowControl 改ページ時1行残して段落を区切らない
KeepWithNext 次の段落と分離しない
KeepTogether 段落を分割しない
PageBreakBefore 段落前で改ページする
NoLineNumber 行番号を表示しない
Hyphenation ハイフネーション
TextboxTightWrap (テキストボックス)文字列の折り返し

①~⑤の設定

それぞれのプロパティにTrueまたはFalseを設定します。

使用例

①改ページ時1行残して段落を区切らない

Public Sub 改ページ時1行残して段落を区切らない()
Selection.ParagraphFormat.WidowControl = False
End Sub

注意点として、WindowではなくWidowです。

②次の段落と分離しない

Public Sub 次の段落と分離しない設定をオンにする()
ActiveDocument.Paragraphs.KeepWithNext = True
End Sub

③段落を分割しない

次の例は、すべての段落の段落分割設定をオンにする場合の使用例です。

Public Sub すべての段落の段落分割設定をオンにする()
ActiveDocument.Paragraphs.KeepTogether = True
End Sub

④段落前で改ページする

Public Sub 段落前で改ページする設定をオンにする()

ActiveDocument.Paragraphs.PageBreakBefore = True

End Sub

⑤行番号を表示しない

Public Sub 行番号を表示しない設定をオンにする()

ActiveDocument.Paragraphs.NoLineNumber = True

End Sub




⑥ハイフネーションの設定

ハイフネーションのみ、定数がHyphenationとなっている関係で、ほかのものと設定の仕方が逆になります。

すなわち、Trueを設定すると、ハイフネーションありと見なされ、ハイフネーションなしのチェックが外れます。逆にFalseを設定すると、ハイフネーションなしと見なされ、ハイフネーションなしのチェックが入ります

使用例

Public Sub ハイフネーションなしのチェックを外す()

Selection.Paragraphs.Hyphenation = True

End Sub

⑦(テキストボックス)文字列の折り返し

テキストボックスを選択している場合のみ設定できます。TextboxTightWrapで指定できる定数は以下の通りです。

定数 説明
wdTightAll すべての行を折り返す
wdTightFirstAndLastLines 最初と最後の行のみ折り返す
wdTightFirstLineOnly 最初の行のみ折り返す
wdTightLastLineOnly 最後の行のみ折り返す
wdTightNone すべての行を折り返さない

なお、ここでいう「文字列の折り返し」は、テキストボックス内部の文字列ではなく、テキストボックス周囲の文字列です。また、この設定はテキストボックスが「塗りつぶしなし」であり、かつテキストボックスが「外周」または「内周」の場合のみ有効に働きます。

この設定、日本だけでなく、世界的にみても全然使われていないのか、情報がほとんど見つかりませんでした。特に、TextboxTightWrapの定数に至ってはまともな情報がなく、この部分をマクロで設定している人は世界で極僅かなのではないかという疑念があります




下図は、テキストボックスの文字列の折り返しが「最初と最後の行」の場合の例です。少々わかりにくいですが、テキストボックス内部に、テキストボックス周囲の文字列が食い込んでいます。

使用例

Public Sub 文章全体のテキストボックスの文字列の折り返しをなしにする()

Dim shp As Shape
For Each shp In ActiveDocument.Shapes
    If shp.Type = msoTextBox Then
        shp.TextFrame.TextRange.ParagraphFormat.TextboxTightWrap = wdTightNone
    End If
Next shp

End Sub

上の使用例では、テキストボックスの設定を書き換える必要があるため、複雑な工程を踏んでいます。これについてはまた別の記事で詳述します。

おすすめ

コメントを残す

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

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