「word vba 同じスタイルの場合は段落間にスペースを追加しない」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Wordの[段落]ダイアログ-[インデントと行間隔]タブに、[同じスタイルの場合は段落間にスペースを追加しない]という設定項目があります。
これを操作するVBA(Visual Basic for Applications)のコードを探している方による検索です。
とりあえず、マクロ記録してみましたが、それらしきプロパティが見つかりません。
Style.NoSpaceBetweenParagraphsOfSameStyleプロパティ
オブジェクトブラウザーで、いろいろなキーワードを検索してみると、NoSpaceBetweenParagraphsOfSameStyleという関係しそうなプロパティが見つかります。
しかしこのNoSpaceBetweenParagraphsOfSameStyleプロパティは、Styleオブジェクトのプロパティで、例えば、
With Selection.ParagraphFormat.Style
.NoSpaceBetweenParagraphsOfSameStyle _
= Not .NoSpaceBetweenParagraphsOfSameStyle
End With
というコードを実行しても、そのスタイルの[同じスタイルの場合は段落間にスペースを追加しない]は変更されますが、[段落]ダイアログの[同じスタイルの場合は段落間にスペースを追加しない]は変更できません。残念ながら。
NoSpaceBetweenParagraphsOfSameStyleは、Styleオブジェクトのプロパティだから、当然の結果です。
同じスタイルの場合は段落間にスペースを追加しない設定を切り替えるサンプルマクロ
英語圏の情報を検索してみてみると、MSDN(Microsoft Developer Network)フォーラムの中に、
「How to set NoSpaceBetweenParagraphsOfSameStyle in a range」
という質問が上がっていることに気づきました。
ここで紹介されているコードを使わせていただき、以下のようなマクロにすると、[段落]ダイアログ-[インデントと行間隔]タブの、[同じスタイルの場合は段落間にスペースを追加しない]チェックボックスのOn・Offを切り替えることができます。
With Dialogs(wdDialogFormatParagraph)
If .NoSpaceBetweenParagraphsOfSameStyle = 0 Then
.NoSpaceBetweenParagraphsOfSameStyle = 1
Else
.NoSpaceBetweenParagraphsOfSameStyle = 0
End If
.Execute
End With
Dialogsプロパティの引数、
すなわち、Dialogsコレクションオブジェクトのデフォルトプロパティの引数に、
定数・wdDialogFormatParagraphを指定して、
[段落]ダイアログを取得して、
With Dialogs(wdDialogFormatParagraph)
NoSpaceBetweenParagraphsOfSameStyleを切り替え、
If .NoSpaceBetweenParagraphsOfSameStyle = 0 Then
.NoSpaceBetweenParagraphsOfSameStyle = 1
Else
.NoSpaceBetweenParagraphsOfSameStyle = 0
End If
DialogオブジェクトのExecuteメソッドを実行するというコードです。
.Execute
NoSpaceBetweenParagraphsOfSameStyleの値を切り替える処理は、Not演算子を使った
.NoSpaceBetweenParagraphsOfSameStyle = _
Not .NoSpaceBetweenParagraphsOfSameStyle
というコードで切り替わるのか試してみましたが、ダメなので、If文を使ったコードにしています。
Home » ワードマクロ・Word VBAの使い方 » スタイル » 同じスタイルの場合は段落間にスペースを追加しないのOn/Offを切り替えるWordマクロ