'-------------------------------------------
Public Type Symbol
CharCode As Long
Font As String
End Type
Dim wd As Word.Application
Function InsertSymbol() As Symbol
Dim doc As Word.Document, cnt As Integer
Set doc = wd.Documents.Add(Visible:=True)
doc.Activate
wd.Dialogs(wdDialogInsertSymbol).Show
If (doc.Characters.Count > 1) Then
wd.Selection.MoveLeft Extend:=True
InsertSymbol.CharCode = wd.Dialogs(wdDialogInsertSymbol).CharNum And &HFFF
InsertSymbol.Font = wd.Dialogs(wdDialogInsertSymbol).Font
End If
doc.Close 0
Set doc = Nothing
End Function
Sub TestInsert()
Initialize
Dim s As Symbol
s = InsertSymbol
MsgBox CStr(s.CharCode) + "(" + s.Font + ")"
Cleanup
End Sub
Sub Initialize()
Set wd = New Word.Application
wd.Visible = False
End Sub
思路:创建一个临时的WORD文档,然后调用WORD内置对话框,将内容插入到WORD文档中,再将文档中的内容选中,赋给一个变量,然后将临时文档删除,再将变量中的值赋给RTF控件。
示例代码如下:
Private Sub Command1_Click()
Dim wd As New Application
Dim doc As New Document
Set doc = wd.Documents.Add(, , wdNewBlankDocument)
doc.Activate
Dim SpecialSymbol As String, myRange As Range
Dialogs(wdDialogInsertSymbol).Show
Set myRange = ActiveDocument.Paragraphs(1).Range
SpecialSymbol = myRange.Text
doc.SaveAs "d:\tmp.doc"
doc.Close
wd.Quit
Kill "d:\tmp.doc"
RichTextBox1.Text = SpecialSymbol
End Sub