文書の過去の版を表示しています。


Win32 APIのMessageBox関数を呼び出す

標準モジュール Win32

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

<codeprism lang=vba el=true css=full> Sub test_Win32()

  Win32.MessageBox "Hello 世界 from Win32", "はろーはろーはろー", Win32.MB_YESNOCANCEL Or Win32.MB_ICONINFORMATION

End Sub </codeprism>

文書の編集
文書の先頭へ