Word VBA - 查找一个文本字符串,其中一个单词(并非字符串中的所有单词)具有特定的样式或格式

Word VBA - find a text string where a one word (not all words in string) have a particular style or format

我试图构建一些代码来搜索文本中的一个词是特定格式或样式的文本。例如,我想搜索文本“Hello world, all is good”,但只搜索到“all”一词为粗体的实例。

我想搜索前几个词“Hello world,”;折叠 selection,在接下来的三个字符中搜索粗体字“all”;折叠 selection(如果为真)然后在下一位搜索单词“is good”。这将导致用粗体词识别整个短语,但它看起来确实效率低下并且不是很灵活。此外,为了 select 整个句子,我必须编写代码将 selection 移回开头并向前扩展 selection。然后我需要重置搜索以从该位置继续前进。

是否有一些 easy/easier/more 优雅的方法来搜索字符串中只有一个单词具有特定属性(如粗体)的字符串?我特别希望搜索忽略相关词不是粗体的短语实例。

我花了几个小时搜索 google 和 stackflow,但在这方面找不到任何东西。

我没有发布代码,因为我不太擅长编写代码,我真的很想了解是否有 flexible/elegant 方法来做我想做的事情。我在上面解释的不灵活的根是如此不灵活,我不愿意费心编写一些东西。

谢谢 杰里米

我会使用的方法是搜索字符串,如果找到,则在字符串中搜索单词。这是一个例子。

Sub Demo()
    Dim StringRange As Range
    Dim MatchFound  As Boolean
    
    With ActiveDocument.Range.Find
        ' The string to find
        .Text = "Hello world, all is good"
        
        ' Search the document
        Do While .Execute
            ' Capture the string
            Set StringRange = .Parent.Duplicate
            
            With .Parent.Duplicate.Find
                ' The word to find
                .Text = "all"
                .Font.Bold = True
                
                ' Search the string
                If .Execute Then
                    MatchFound = True
                    StringRange.Select
                    
                    If MsgBox("Match found. Continue searching?", vbQuestion + vbYesNo) = vbNo Then
                        Exit Sub
                    End If
                End If
            End With
        Loop
        
        If MatchFound Then
            MsgBox "Finished searching document", vbInformation
        Else
            MsgBox "No match found", vbInformation
        End If
    End With
End Sub