Ich möchte eine Tabelle in einer Powerpoint-Folie in HTML konvertieren. Ich weiß, wie man die Tabellen-Tags einfügt, kann aber nicht herausfinden, wie man formatierten Text in den Tabellenzellen in HTML konvertiert. Wie kann ich beispielsweise „Dies ist eine Zelle mitdeutlichText“ in „Dies ist eine Zelle mit <b>fettem</b> Text“?
Ich muss dies für fetten, kursiven und farbigen Text tun können (und idealerweise auch für Schriftgröße und Schriftfamilie). Ich möchte die Powerpoint-Tabellenzelle selbst nicht ändern, sondern einfach einen HTML-String zusammenstellen, den ich in einemjsonObjekt.
Ich weiß, wie man das in Word macht, indem manWortbereichund mithilfe derFindenMethode. Aber ich konnte dies nicht in Powerpoint reproduzieren.
Antwort1
Jeder Textbereich verfügt über eine Runs-Sammlung. Wenn der gesamte Text im Bereich identisch formatiert ist, gibt es nur einen Run in der Sammlung.
Wenn sich Schriftart/Größe/Farbe/Fettdruck während des Streams ändern, wird die Runs-Sammlung erhöht.
Wenn Sie auf jeden Run in der Sammlung zugreifen, erhalten Sie einen TextRange, dessen Schrifteigenschaften Sie untersuchen können. Nehmen wir zum Beispiel an, Sie haben Text wie diesen (alles in einer Form)
Dieser Text ist komplett gleich formatiert. Dieser Text enthält ein bisschenfettText.
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
Absatz: 1 Lauf: 1 0 Absatz: 2 Lauf: 1 0 Lauf: 2 -1 Lauf: 3 0
Der erste Absatz hat nur 1 Durchlauf, weil der gesamte Text gleich formatiert ist. 0 = NICHT fett.
Der zweite Absatz hat 3 Durchläufe (einen für jedes Zeichen, das anders formatiert ist als das vorherige Zeichen). Nicht fett, Fett, Nicht fett