No PowerPoint VBA, como usar 'TextRange.Runs.Font.Bold' para inserir as tags 'b' e '\ b' ao redor do intervalo de texto retornado? [fechadas]

0

Estou usando o VBA no Powerpoint para encontrar estilos no texto e, em seguida, envolver esse texto com tags de marcação HTML. Abaixo está o código que estou tentando usar para encontrar texto em negrito e, em seguida, envolvê-lo em <b>bold text</b> .

Infelizmente, o código parece retornar booleano, não um textrange.

O que estou fazendo de errado?

With oSh.TextFrame.TextRange
For x = 1 To .Paragraphs.Count
    With .Paragraphs(x)
        Debug.Print "Paragraph: " & x
        For y = 1 To .Runs.Count
            If .Runs(y).Font.Bold Then
                .Runs(y).Font.Bold = "<b>" & .Runs(y).Font.Bold & "</b>"
            End If
        Next
    End With
Next
End With
    
por Harkirat 20.12.2016 / 14:04

1 resposta

0

Como assim ... isso funcionará com a forma atualmente selecionada; atribua o que você quiser a oSh, desde que tenha texto:

Sub EmboldenAndItalicize()

Dim oSh As Shape
Dim x As Long

Set oSh = ActiveWindow.Selection.ShapeRange(1)

With oSh.TextFrame.TextRange
For x = 1 To .Runs.Count
    If .Runs(x).Font.Bold Then
        .Runs(x).Text = "<b>" & .Runs(x).Text & "</b>"
    End If
Next
For x = 1 To .Runs.Count
    If .Runs(x).Font.Italic Then
        .Runs(x).Text = "<i>" & .Runs(x).Text & "</i>"
    End If
Next

End With

End Sub

O TextRange de uma forma tem uma coleção Runs; se não houver alteração de formatação no texto, a coleção Runs terá apenas um membro; caso contrário, há um novo membro Runs para cada alteração de formatação.

    
por 20.12.2016 / 17:22