1

VBA マクロを使用して Microsoft Word でスタイル検索を実行しています。私の目標は、ドキュメントで見つかったスタイルごとに特定のアクションを 1 回実行することです。

マクロは、少なくとも 2 つの段落を含む文書では正しく機能しますが、段落が 1 つだけ含まれる文書では、マクロはスタイルを正しく警告しません。新しい段落記号を入力すると、ドキュメントに新しいテキストやスタイルを追加していないのに、余分な空白の段落記号が表示されるだけで、スタイルが検出されるのは奇妙に思えます。私のマクロの何が問題なのか、どうすれば修正できるのか誰か知っていますか? ご覧いただきありがとうございます。

Sub AlertAllStylesInDoc()
    Dim Ind As Integer
    Dim numberOfDocumentStyles As Integer
    Dim styl As String
    Dim StyleFound As Boolean

    numberOfDocumentStyles = ActiveDocument.styles.count

    For Ind = 1 To numberOfDocumentStyles
        styl = ActiveDocument.styles(Ind).NameLocal
        With ActiveDocument.Content.Find
            .ClearFormatting
            .text = ""
            .Forward = True
            .Format = True
            .Style = styl
            Do
                StyleFound = .Execute
                If StyleFound = True Then
                    ' actual code does more than alert, but keeping it simple here'
                    MsgBox styl
                    GoTo NextStyle
                Else
                    Exit Do
                End If
            Loop
        End With

    NextStyle:
        Next

End Sub   
4

1 に答える 1

1

が機能しない理由はわかりませんActiveDocument.Contentが、置き換えるとActiveDocument.Range(0,0)問題が解決するようです (Word 2016 でテスト済み)。

With ActiveDocument.Range(0, 0).Find

于 2016-07-20T21:12:24.897 に答える