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

Excel VBA Shapes TextFrame Characters Text Charset

我将文本框插入到我的 Excel 2013 文档中并放入一些文本

正体字/繁体字

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

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

我得到了类似的东西

???/???

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

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

您可以创建看起来像 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。 请注意,它有一个很好的内置机制来关闭消息。