VBA を使用してスタイル セパレータを挿入するときに空白を削除する

VBA を使用してスタイル セパレータを挿入するときに空白を削除する

みなさんこんにちは。英語が下手で申し訳ありません。スタイル セパレーターを追加するマクロがあり、段落の前に空白が追加されること以外は正常に動作します。追加されないように、または追加されても後で削除するようにマクロを変更するにはどうすればよいでしょうか。

Sub SeparadordeEstilos()
 With Selection
            .InsertBefore vbCr
            .InsertStyleSeparator
            .Paragraphs(1).Range.Font.Reset
            .Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub

編集済み:

チャールズさん、本当にありがとうございます。詳細をすべて説明しなかったことをお詫びします。アウトラインのマルチレベルリストで、同じ番号の付いた段落を 2 種類必要としています。太字のフォント スタイルで目次に表示される段落と、通常のフォントで目次には表示されない段落です。そこで、2 つのスタイルを作成しました。PLL レベル 2目次に表示される太字でPLL レベル 2 notdc太字でないものは、質問で説明したマクロを実行するときにスタイルセパレーターで自動的に適用される目次には表示されません。特に連続した番号付けの要件があるため、これが唯一の解決策です。

空白部分を除いてすべて正常に動作します。この空白部分はドキュメント内で非常に不適切で、プロフェッショナルな印象を与えず、逆に雑な印象を与えます。

したがって、代替手段、または空白を削除できる方法が必要です。

スクリーンショット

がここにありますサンプル文書問題があります。[すべて表示] が有効になっていると連続番号付けが正常に機能すると思ったのですが、これをオフにすると (すべて表示)、機能しなくなり、別の番号付けが設定されます。

編集2

新しい画像を表示

答え1

2 つの段落の間には、スペース文字のようなスペースが必要です。

コードを段落の末尾の段落記号の前に実行すると、スタイルセパレーターそして、空間が新しいスタイルになっている空間。

.insertBefore vbCrを省略すると、レディこれを段落の末尾で実行すると、スタイル区切りとスペースが追加され、現在の段落記号が削除され、次の段落が新しいスタイルで表示されるので、2 つの段落スタイルを使用した 1 つの段落のように見えます。

スペースは、スタイルを適用するのに必要になると思われます。2 番目の例では、最初の段落のテキストを 2 番目の段落のテキストから実際に分離することが確かに必要です。

本当にそのスペースを削除したいですか?

修正後のマクロは次のとおりです。

Sub InsertStyleSeparator()
' Use at end of paragraph just before paragraph mark.
    With Selection
        '            .InsertBefore vbCr
        .InsertStyleSeparator
        .Paragraphs(1).range.Font.Reset
        .Paragraphs(1).Style = ("PLL Nivel 2 notdc")
    End With
End Sub

私が追加したコメントに注意してください: これは段落の最初ではなく、最後に使用してください。

これがあなたのサンプル文書、マクロを使用します。

スタイル セパレーターと一緒に使用する場合、段落に追加された部分には独自の番号は付きません。視覚的には、スタイル セパレーターによって区切られた段落の一部として機能します。

答え2

vbCrは新しい行です。このコード行は、.InsertBefore vbCrスタイルの前に新しい行を挿入します。段落の前に空白が入らないようにするには、この行を削除します。

関連情報