文書の過去の版を表示しています。
Win32 APIのMessageBox関数を呼び出す
標準モジュール Win32
当方が使用しているExcel 2000ではLongPtr
がサポートされていないため、ポインタが必要なところでLong
にしています。
このような古いバージョンでなければLongPtr
が使えるはずで、使うべきです。
MessageBoxA
のDeclare
の場合、hwnd
が該当します。
<codeprism lang=vba el=true css=full> Declare Function MessageBoxA Lib “user32.dll” (ByVal hwnd As Long, ByVal Text As String, ByVal Caption As String, ByVal Types As Long) As Long
Public Const MB_OK = &H0 Public Const MB_OKCANCEL = &H1 Public Const MB_RETRYCANCEL = &H5 Public Const MB_YESNO = &H4 Public Const MB_YESNOCANCEL = &H3
Public Const MB_ICONEXCLAMATION = &H30 Public Const MB_ICONWARNING = MB_ICONEXCLAMATION Public Const MB_ICONINFORMATION = &H40 Public Const MB_ICONATERISK = MB_ICONINFORMATION Public Const MB_ICONQUESTION = &H20 Public Const MB_ICONSTOP = &H10 Public Const MB_ICONERRO = MB_ICONSTOP Public Const MB_ICONHAND = MB_ICONSTOP
Function MessageBox(Text As String, Caption As String, Types As Long) As Long
MessageBox = MessageBoxA(0, Text, Caption, Types)
End Function </codeprism>
ワークシート Sheet1
Sub test_Win32()
Win32.MessageBox "Hello 世界 from Win32", "はろーはろーはろー", Win32.MB_YESNOCANCEL Or Win32.MB_ICONINFORMATION
End Sub