2015-01-27 2 views
0

вставить текстовое поле в мой документ Excel 2013 и поместить текстExcel VBA Формы TextFrame Символы Текст Charset

正 体 字/繁体字

с UTF-8 символов В текстовом поле его выглядит нормально но когда я пытаюсь MsgBox его с командой

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

я получаю что-то вроде

???/???

Итак, как установить кодировку UTF_8, чтобы получить этот текст в msgbox или в переменную?

+1

Насколько я знаю, MsgBox не будет работать с символами не ASCII. – Rory

+1

Msgbox связан с американизмом –

+0

Как вы тестируете переменные? Окна «Немедленные/Часы/Локальные» не будут работать. – Rory

ответ

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. Обратите внимание, что у него есть хороший встроенный механизм для отклонения сообщения.

0

Единственным обходным решением является создание формы и отображение вашего сообщения на этикетке. Я думаю, что метки имеют UTF-8.