0

ドキュメント内の特定の色のテキストをすべて検索して、デバッグウィンドウに印刷したいと思います。

Sub FindText()
    Selection.Find.Font.Color = 3539877
    Selection.Find.Execute
    Debug.Print Selection
End Sub

問題は、すべての結果を一度に印刷したいのに、次の結果しか表示されないことです。私の知る限り、「FindAll」メソッドは使用できません。たぶん、すべての検索結果を含む配列にアクセスできます。

また、少し関係がないのですが、すべての結果を印刷する代わりにクリップボードにコピーすることは可能でしょうか?

4

1 に答える 1

2

ループ内で検索を行う必要があります。この例を参照してください。検索結果を配列に格納しています

Option Explicit

Sub FindText()
    Dim MyAR() As String
    Dim i As Long

    i = 0

    Selection.HomeKey Unit:=wdStory
    Selection.Find.Font.Color = -671023105

    Do While Selection.Find.Execute = True
        ReDim Preserve MyAR(i)
        MyAR(i) = Selection
        i = i + 1
    Loop

    If i = 0 Then
        MsgBox "No Matches Found"
        Exit Sub
    End If

    For i = LBound(MyAR) To UBound(MyAR)
        Debug.Print MyAR(i)
    Next i
End Sub
于 2012-05-30T20:49:34.513 に答える