Powerpoint の表セル内の書式設定されたテキストを HTML に変換する方法

Powerpoint の表セル内の書式設定されたテキストを HTML に変換する方法

パワーポイントのスライドの表をHTMLに変換したいのですが、表のタグの挿入方法は分かっているのですが、表のセル内の書式設定されたテキストをHTMLに変換する方法が分かりません。例えば、「これはセルです」というテキストをHTMLに変換するにはどうすれば良いでしょうか?大胆な「テキスト」を「これは <b>太字</b> テキストを含むセルです」に変更しますか?

太字、斜体、色付きのテキスト(理想的にはフォントサイズとフォントファミリー)にこれを適用する必要があります。実際には、PowerPointの表のセル自体を変更するのではなく、単にHTML文字列を組み立てて、json物体。

私はWordでこれを行う方法を知っています。単語範囲そして、探す方法です。しかし、これを PowerPoint で再現することはできませんでした。

答え1

各 TextRange には Runs コレクションがあります。範囲内のすべてのテキストが同一の書式設定になっている場合、コレクションには Run が 1 つだけ存在します。

フォント/サイズ/色/太字が途中で変更された場合、Runs コレクションが増加します。

コレクション内の各 Run にアクセスすると、フォント プロパティを調べることができる TextRange が提供されます。たとえば、次のようなテキストがあるとします (すべて 1 つの図形内)。

このテキストはすべて同じフォーマットになっています。このテキストには、太字文章。

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

段落: 1 実行: 1 0 段落: 2 実行: 1 0 実行: 2 -1 実行: 3 0

すべてのテキストが同じ書式に設定されているので、最初の段落には 1 つの実行のみがあります。0 = 太字ではありません。

2 番目の段落には 3 つの実行があります (前の文字とは異なる書式の文字ごとに 1 つ)。NotBold、BOLD、NotBold

関連情報