我需要以编程方式(VBA / VSTO)将几个特殊符号(例如,表情符号)附加到PowerPoint 2007中的TextRange
中的文本中。
我可以使用以下方法插入符号:
With ActiveWindow.Selection.TextRange
.Text = "sometext"
Call .Characters(.Characters.Count + 1).InsertSymbol("Arial", 65, MsoTriState.msoTrue)
End With
不幸的是,当我尝试使用不同的字体一个接一个地插入几个符号时,只有最后一个符号显示正确而前一个符号显示为空方块。
如何从不同的字体插入多个符号?也许有办法为每个符号创建一个新的Run
?
答案 0 :(得分:2)
每个InsertSymbol
都会删除TextRange
的内容,至少在我的测试中。
然而,我找到了一种没有InsertSymbol
的方法。对每个符号重复:
newRun.InsertAfter(character);
//
插入符号字符,并创建一个
新Run
NameOther
而不是Name
,否则
特殊符号,如版权newRun.get_Characters(newRun.get_Characters(-1, -1).Count, 1).Font.NameOther = symbolFontName;
答案 1 :(得分:1)
为每个TextRange
创建一个新的.InsertSymbol
对象。
Dim tr1 As TextRange
Set tr1 = ActiveWindow.Selection.TextRange
tr1.InsertSymbol "Wingdings", 81
Dim tr2 As TextRange
Set tr2 = ActiveWindow.Selection.TextRange
tr2.InsertSymbol "Wingdings 2", 81
答案 2 :(得分:0)
我花了很多时间和精力来解决这个问题。然后我烦恼并发布了解决方案。
有人忙于“投票”我的问题/答案,而无需理解复杂性和解决方案。