パワーポイントのスライドの表を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