Cada TextRange tem uma coleção Runs. Se todo o texto no intervalo for formatado de forma idêntica, haverá apenas uma execução na coleção.
Se a fonte / tamanho / cor / negritude mudar de midstream, a coleção Runs será incrementada.
Acessar cada Execução na coleção fornece um TextRange cujas propriedades da fonte você pode examinar. Suponha, por exemplo, que você tenha um texto assim (tudo em uma forma)
Este texto é todo formatado da mesma forma. Este texto inclui um pouco de texto em negrito .
Sub thing()
Dim oSh As Shape
Dim oRng As TextRange
Dim x As Long
Dim y As Long
' Assume that the shape with your text is selected
Set oSh = ActiveWindow.Selection.ShapeRange(1)
' You can look at the text in the shape as a whole,
' or paragraph by paragraph or line by line or character by character.
' Let's do it para by para
With oSh.TextFrame.TextRange
For x = 1 To .Paragraphs.Count
With .Paragraphs(x)
Debug.Print "Paragraph: " & x
For y = 1 To .Runs.Count
Debug.Print vbTab & "Run: " & y
Debug.Print .Runs(y).Font.Bold
Next
End With
Next
End With
End Sub
Parágrafo: 1 Executar: 1 0 Parágrafo: 2 Executar: 1 0 Run: 2 -1 Run: 3 0
O primeiro parágrafo tem 1 executado apenas porque todo o texto é formatado da mesma forma. 0 = NÃO em negrito.
O segundo parágrafo tem 3 execuções (uma para cada caractere que é formatado de maneira diferente do caractere anterior). NotBold, BOLD, NotBold