目次

Win32 APIのMessageBox関数を呼び出す

作成日: 2023-08-21 (月)

第1回 Win32 APIのMessageBox関数を呼び出す

MessageBox

標準モジュール Win32

当方が使用しているExcel 2000ではLongPtrがサポートされていないため、ポインタが必要なところでLongにしています。 このような古いバージョンでなければLongPtrが使えるはずで、使うべきです。 MessageBoxADeclareの場合、hwndが該当します。

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

ワークシート Sheet1

Sub test_Win32()
    Win32.MessageBox "Hello 世界 from Win32", "はろーはろーはろー", Win32.MB_YESNOCANCEL Or Win32.MB_ICONINFORMATION
End Sub