MS Word 2013 VBA ( Excel ではない) に、選択したテキストのハイライト色を切り替えるマクロがあります。コードは次のようになります。
If Selection.Range.HighlightColorIndex = WhtColor Then Selection.Range.HighlightColorIndex = wdNoHighlight Else Selection.Range.HighlightColorIndex = WhtColor
これは、連続/連続した選択に最適です。しかし、たとえば、Word の表で連続していない 4 つの行 (たとえば、行 5、12、15、および 19) を選択すると、マクロは選択された最後の行のみを強調表示します。
連続していない範囲のすべての「部分」に適用する HighlightColorIndex を取得するにはどうすればよいですか? または、範囲のさまざまな「部分」をループして、各部分に HighlightColorIndex を適用するにはどうすればよいですか?
1 に答える
2
Tim Williams が指摘している Web ページ ( support.microsoft.com/en-us/kb/288424 ) は、これがどのように可能であるかについての手がかりを提供します。ただし、そのリンクは、連続していない選択をループできないことを示しています。
それにもかかわらず、そのリンクが示しているのは、連続していない選択範囲に対してはフォントの書式設定を設定できるが、範囲オブジェクトに対しては設定できないことです。
連続していない選択に対して機能する改訂されたコードは次のとおりです。
If Selection.Font.Shading.BackgroundPatternColor = WhtColor Then Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic Else Selection.Font.Shading.BackgroundPatternColor = WhtColor
そのコードは、背景色を選択したターゲット カラーに変更します (ただし、カラー コードを Wd 定数から WdColor 定数に変更する必要がありました)。
このアプローチの唯一の欠点は、背景色が変更されたテキストを検索する方法がわからないことですが、強調表示されているテキストを検索することはできます。
とにかく、@Tim Williams に役立つリンクをありがとう。上記が、フォントのプロパティを変更したいだけで、実際に選択した範囲の個別の部分をループする必要がない他の誰かに役立つことを願っています.
于 2016-04-04T21:22:22.520 に答える