Quiero convertir una tabla en una diapositiva de Powerpoint a HTML. Sé cómo colocar las etiquetas de la tabla, pero no sé cómo convertir el texto formateado dentro de las celdas de la tabla a HTML. Entonces, por ejemplo, ¿cómo puedo convertir "Esta es una celda conatrevidotext" a "Esta es una celda con texto en <b>negrita</b>"?
Necesito poder hacer esto para texto en negrita, cursiva y coloreado (e, idealmente, tamaño de fuente y familia de fuentes). En realidad, no quiero cambiar la celda de la tabla de Powerpoint en sí, sino simplemente ensamblar una cadena html que guardaré en unjsonobjeto.
Sé cómo hacer esto en Word estableciendo unrango de palabrasy usando elEncontrarmétodo. Pero no he podido replicar esto en Powerpoint.
Respuesta1
Cada TextRange tiene una colección Runs. Si todo el texto del rango tiene el mismo formato, solo habrá una ejecución en la colección.
Si la fuente/tamaño/color/negrita cambia a mitad de camino, se incrementará la colección de Ejecuciones.
Al acceder a cada ejecución de la colección, obtendrá un TextRange cuyas propiedades de fuente puede examinar. Supongamos, por ejemplo, que tiene un texto así (todo en una sola forma)
Todo este texto tiene el mismo formato. Este texto incluye un poco denegritatexto.
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
Párrafo: 1 Ejecución: 1 0 Párrafo: 2 Ejecución: 1 0 Ejecución: 2 -1 Ejecución: 3 0
El primer párrafo tiene 1 ejecución solo porque todo el texto tiene el mismo formato. 0 = NO en negrita.
El segundo párrafo tiene 3 ejecuciones (una para cada carácter que tiene un formato diferente al carácter anterior). Sin negrita, sin negrita, sin negrita