你可以使用Windows API的消息框,而不是,它應該顯示多數編碼類型
例如,該進入一個MODULE
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
(Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long
#Else
Private Declare Function User32MsgBox Lib "user32" Alias "MessageBoxW" _
(Optional ByVal hWnd As Long, Optional ByVal Prompt As Long, _
Optional ByVal Title As Long, Optional ByVal Buttons As Long) As Long
#End If
Public Function MessageBoxW(cPrompt As String, _
Optional cButtons As VbMsgBoxStyle = vbOKOnly, _
Optional cTitle As String) As Long
MessageBoxW = User32MsgBox(0, StrPtr(cPrompt), StrPtr(cTitle), cButtons)
'*****Probably need to convert StrPtr to 32bit long on 64bit - see next line
'MessageBoxW = User32MsgBox(0, cLng(StrPtr(cPrompt)), CLng(StrPtr(cTitle)), cButtons)
End Function
Sub MyMacro()
Dim txt As String
txt = Sheets("Sheet1").Cells(1, 1).Value
MessageBoxW (txt)
End Sub
我不會在有一個64位機與我因此您可能需要在64位機器上將StrPtr轉換爲32位長整數
有關在64位系統上修改VBA中的API調用的信息,請訪問:http://msdn.microsoft.com/zh-cn/library/辦公室/ ee691831.aspx#odc_office2010_Compatibility32bit64bit_ApplicationProgrammingInterfaceC ompatibility – barrowc