可以將字符串內格式化特定子串,但它是非常麻煩的,例如假設shp
是代表你的文本框對象變量:
Sub foo()
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes("TextBox 3")
shp.TextFrame.TextRange.Text = "Hello, world!"
shp.TextFrame.TextRange.Characters.Font.Size = 14 'applies uniform font to entire shape
shp.TextFrame.TextRange.Characters(1, 5).Characters.Font.Size = 28
End Sub
輸出示例:
的難點當然是混合格式,我不認爲有任何的解決方案易於。您需要確定需要「捕獲」哪些格式,以及隨後實施適當的條件邏輯以將這些格式轉換爲PowerPoint圖形。
一種可能的選擇 - 如果我是你,我會走的路線是從Excel複製單元格,並使用此方法粘貼到PowerPoint中。我相信這會在PowerPoint幻燈片中創建一個由單個單元格組成的表。你將不得不作出的大小/位置的調整,但是這應該是更加的簡單爲了比試圖捕捉字體格式的每一個可能的變化:
Sub foo2()
Dim shp As Shape
Dim xl As Object
'Get Excel and copy a specific cell
Set xl = GetObject(, "Excel.Application")
xl.Workbooks("Book35").Sheets("Sheet2").Range("B4").Copy
'Paste that cell in to PowerPoint as a table, preserving formats:
ActivePresentation.Slides(1).Select
Application.CommandBars.ExecuteMso "PasteSourceFormatting"
End Sub
示例輸出,從Excel單元格複製:
看到第一個單詞如何始終出現文本框的字符串,這絕對是一個可行的解決方案!非常感謝!現在我可以刪除那些令人討厭的假形狀:) – user2533406 2014-09-29 17:36:41