Cara Membuat Kotak Pesan (Msgbox) Menutup Otomatis

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.

 Visual Basic Editor 
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

Msgbox AutoClose

Be the first to comment

Leave a Reply

Your email address will not be published.


*