Quero converter uma tabela em um slide do PowerPoint para HTML. Eu sei como colocar tags na tabela, mas não consigo descobrir como converter o texto formatado dentro das células da tabela em HTML. Então, por exemplo, como posso converter "Esta é uma célula comaudaciosotexto" para "Esta é uma célula com texto em <b>negrito</b>"?
Preciso ser capaz de fazer isso para texto em negrito, itálico e colorido (e, idealmente, tamanho e família de fontes). Na verdade, não quero alterar a célula da tabela do Powerpoint em si, mas simplesmente montar uma string html que salvarei em umJSONobjeto.
Eu sei como fazer isso no Word definindo umWord.rangee usando oEncontrarmétodo. Mas não consegui replicar isso no Powerpoint.
Responder1
Cada TextRange possui uma coleção Runs. Se todo o texto no intervalo estiver formatado de forma idêntica, haverá apenas um Run na coleção.
Se a fonte/tamanho/cor/negrito mudar no meio do caminho, a coleção Runs será incrementada.
Acessar cada Run na coleção fornece um TextRange cujas propriedades de fonte você pode examinar. Suponha, por exemplo, que você tenha um texto assim (todo em um formato)
Este texto está todo formatado da mesma forma. Este texto inclui um pouconegritotexto.
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 Execução: 1 0 Parágrafo: 2 Execução: 1 0 Execução: 2 -1 Execução: 3 0
O primeiro parágrafo tem 1 execução apenas porque todo o texto está formatado da mesma forma. 0 = SEM negrito.
O segundo parágrafo tem 3 execuções (uma para cada caractere formatado de forma diferente do caractere anterior). Não Negrito, Negrito, Não Negrito