Excel VBA形状TextFrame字符文本字符集

时间:2015-01-27 14:37:58

标签: excel vba excel-vba shapes

我将文本框插入Excel 2013文档并添加一些文本

  

正体字/繁体字

使用UTF-8符号 在文本框中它看起来不错,但是当我尝试使用命令msgbox它时

MsgBox ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Text

我得到像

这样的东西
  

??? / ???

那么如何设置UTF_8字符​​集以正常获取msgbox中的文本或变量?

2 个答案:

答案 0 :(得分:1)

您可以像MsgBox一样创建外观的内容,像MsgBox一样创建函数,但可以更好地处理UniCode:

Public Declare Function MessageBoxU Lib "user32" Alias "MessageBoxW" _
                            (ByVal hwnd As Long, _
                             ByVal lpText As Long, _
                             ByVal lpCaption As Long, _
                             ByVal wType As Long) As Long
Sub MsgBoxSubstitute()
    Dim s As String
    s = ChrW(8451)
    MessageBoxU 0, StrPtr(s), StrPtr("MsgBox Substitute"), 0
End Sub

使用 Windows API。请注意,它有一个很好的内置机制来解除消息。

答案 1 :(得分:0)

唯一的解决方法是创建表单并在标签中显示您的消息。我认为标签是启用UTF-8的。