2

WORD 2003 で動作するマクロ コードを期待しています。次のようなテキストがあります。

これは、ここから続く文の始まりです。

大文字のテキストを太字にしたい:

これは、ここから続く文の始まりです。

太字のテキストが「AllCaps」としてテキスト形式になっている場合、これは些細なことだと理解していますが、そうではありません。Caps Lock を使用して作成されました。

何か案は?実行できますが、複雑な検索と置換を VBA コード内に追加する方法がわかりません。

4

1 に答える 1

5

必要なのは、Wordが検索機能の高度なセクションで提供する正規表現です。

簡単なサンプルを次に示します。

Public Sub Test()
    With ActiveDocument.Content.Find
        .Text = "<[A-Z]{1,}>"
        .MatchWildcards = True
        .MatchCase = True
        .Replacement.Font.Bold = True
        .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
    End With
End Sub

"<[AZ]{1,}>" は、次のことを意味します。

  • 「<」は、単語の先頭から一致することを意味します
  • 「[]」は、括弧内の文字の 1 つに一致することを意味します
  • "[AZ]" AZ の部分は、括弧内にある場合、大文字の A から Z を意味します
  • 「{1,}」は、前のものと少なくとも 1 回一致することを意味します (この場合、大文字が少なくとも 1 回連続して出現する必要があります)。
  • ">" は、一致が単語の最後で終了する必要があることを意味します。大文字が単語の末尾にないため、パターンは一致しません。たとえば、「THIs」などです。

対処しなければならない 1 つの注意点は、1 文字の単語です。I と A は、このパターン スキームでは太字になります。大文字の単語のグループ全体に一致するパターンを作成する方が簡単かもしれませんが、先頭または末尾の大文字の 1 文字の単語を処理する方法を見つける必要があります。

質問がある場合は、コメントを残してください。さらに説明を試みることができます。

于 2013-11-12T23:06:03.117 に答える