2017-03-10 27 views
0

複数のページの長い単語リストを持つ個別に保存されたドキュメントファイルにアクセスするWordのマクロを作成しています。単語リストドキュメントは改行で各単語を区切るために...Word 2016/VBA単語リストの各単語の最初の使用を強調表示します。

FMS

CPR

Abcの

、同じようにフォーマットされます。

マクロは、リストから各単語の最初の使用を強調表示する必要があります。

今、マクロは単語の使用をすべて強調表示し、さらにその単語が別の単語の一部であるときにハイライト表示します。たとえば、フリーズという単語のEZEをハイライト表示しますが、ezeが単独で表示されている場合にのみ強調表示する必要があります。

1.最初にハイライトし、 をハイライトすることができます。2.実際の単語を捕まえていることを確認するにはどうすればいいですか?私はVBAでそれが起こるように見えることはできません。 私の現在のコード:

Sub TD() 
    ' 
    Dim sCheckDoc As String 
    Dim docRef As Document 
    Dim docCurrent As Document 
    Dim wrdRef As String 
    Dim wrdPara As Paragraph 

    sCheckDoc = "c:\check.docx" 
    Set docCurrent = Selection.Document 
    Set docRef = Documents.Open(sCheckDoc) 
    docCurrent.Activate 

    With Selection.Find 
    .ClearFormatting 
    .Replacement.ClearFormatting 
    .Replacement.Highlight = True 
    .Replacement.Text = "^&" 
    .Forward = True 
    .Format = True 
    .MatchWholeWord = True 
    .MatchCase = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
    End With 

    For Each wrdPara In docRef.Paragraphs 
    wrdRef = wrdPara.Range.Text 
    If Asc(Left(wrdRef, 1)) > 32 Then 
    ' remove the paragraph mark: 
    wrdRef = Left(wrdRef, Len(wrdRef) - 1) 
    With Selection.Find 
    .Wrap = wdFindContinue 
    .Text = wrdRef 
    .Execute Replace:=wdReplaceAll 
    End With 
    End If 
    Next wrdPara 

    docRef.Close 
    docCurrent.Activate 
    End Sub 

答えて

0

ではなく、wdReplaceAllをwdReplaceOneを試してみてください。

.MatchWholeWord = Trueは、埋め込み文字列を強調表示しないようにする必要がありますが、無視されるようです。

オリジナルのコードをThisDocumentの後ろのモジュールでテストし、MatchWholeWordパラメータを無視して、チェック文書の最後の文字列のみをすべて強調表示しました。提案された編集の後、コードはチェック文書からの最後の文字列の最初のインスタンスのみを強調表示しました。今私は働く手順を得ることができません。それは動くが、言葉は強調表示されない。私はWordの背後にあるVBAを使ったことはありません。この変更がうまくいくことを願っています。

+0

ありがとうございました。ええ、私はwdReplaceOneに変更しようとしましたが、それは強調表示されないように見えました。私は、それが見つかったと仮定してチェック文書の最初の単語だけをreplaceoneと置き換えます。 wdFindContinueはすべての利用可能な単語をループさせると思っていましたが。 – bblave

+0

ループしているので、ブレークポイントとステッピングコードで確認しました。私のテストの両方のバージョンでは、チェックリストの最後の単語だけが強調表示されていました。そしてそれはまだリストをループしていたものの、何かを強調表示していませんでした。私は困惑している。 – June7

+0

もう一度テストしました。今回は、WordPadの代わりにWordでCheck Docを作成しました。推奨編集のコードは完全に機能しました。まだ困った。 – June7

関連する問題