
Kotak Pesan atau perintah Msgbox adalah komponen yang sangat penting dalam pembuatan aplikasi karena kotak pesan ini bagian dari Interaksi Manusia dan Komputer. Sangat banyak kegunaan dari kotak pesan ini , salah satunya sebagai informasi kepada User tentang hasil suatu proses ketika selsai dijalakan
Kotak Pesan atau Message Box ini juga banyak digunakan untuk notifikasi pertanyaan kepada user seperti “apakah akan disimpan?” dll. Tidak sedikit juga Kotak pesan digunakan hanya menampilkan Notifikasi atau Pesan kepada User. script VBA sederhana untuk menampilkan Kotak Pesan atau Message Box adalah : MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
Visual Basic Editor'// contoh sederhana Msgbox "Isi Pesan", vbyesno ,"Judul Pesan"
Script diatas adalah contoh untuk menampilkan Kotak pesan. Pernah gak kepikiran bagaimana membuat Kotak pesan yang menutup otomatis pada rentang waktu tertentu. karena jika menggunakan script diatas. Msgbox akan menutup jika kita menekan tombol di Msgbox atau mengklik tanda X di ujung Form.
Untuk membuat Msgbox menutup otomatis ada dua cara yang pertama menggunakan windows API dan yang kedua memenfaatkan wscript.shell
Tanpa Menggunakan Windows API
Agar bisa membuat msgbox autoclose, kita tidak akan menggunakan script Msgbox
bawaan, tetapi kita akan membuat Fungsi dari WScript.shell popup yang dinamakan aMsgbox, sebenarnya penamaan fungsi ini bebas tidak harus aMsgbox seperti pada contoh.
Sub ContohPesan() '// untuk memanggil Kotak Pesan (Custome Msgbox) Pesan = aMsgbox("Ini adalah Pesan Autoclose", 10, "Pesan Saya") '// 10 adalah 10 detik untuk Autoclose End Sub Function aMsgbox(Pesan As String, waktu As Integer, Judul As String) Dim InfoBox As Object Set InfoBox = CreateObject("WScript.Shell") 'Set the message box to close after 10 seconds Select Case InfoBox.Popup(Pesan, waktu, Judul, 0 ) Case 1, -1 Exit Function End Select End Function
Dengan Menggunakan Windows API
Cara kedua adalah dengan menafaatkan windows API yang bernama MsgboxTimeOut . sama seperti cara pertama kita tidak menggunakan msgbox bawaan tetapi menggunakan fungsi yang disebut MsgboxTimeOut, bedanya Fungsi ini sudah ada pada User32 jadi kita tidak perlu membuatnya tetapi cukup memanggil API nya
Visual Basic Editor#If Win64 Then Private Declare PtrSafe Function MsgBoxTimeout Lib "user32" _ Alias "MessageBoxTimeoutA" ( _ ByVal hwnd As LongPtr, _ ByVal lpText As String, _ ByVal lpCaption As String, _ ByVal wType As VbMsgBoxStyle, _ ByVal wlange As Long, _ ByVal dwTimeout As Long) _ As Long #Else Private Declare Function MsgBoxTimeout Lib "user32" _ Alias "MessageBoxTimeoutA" ( _ ByVal hwnd As Long, _ ByVal lpText As String, _ ByVal lpCaption As String, _ ByVal wType As VbMsgBoxStyle, _ ByVal wlange As Long, _ ByVal dwTimeout As Long) _ As Long #End If Sub ContohPesan() Pesan = MsgBoxTimeout(0, "Ini adalah Pesan Autoclose ", _ "Judul Pesan", vbInformation, 0, 2000) '// 2000 dalam milisecond Autoclose End Sub
Baik yang menggunakan Windows API maupun yang tidak, keduanya berjalan dengan lancar. Jika kedua script diatas dicoba, hasilnya akan seperti dibawah ini

Leave a Reply