
Msgbox atau Message box adalah sebuah popup windows yang banyak sekali digunakan dalam pembuatan aplikasi. Salah satu fungsi dari msgbox ini adalah sebagai windows informasi kepada user, atau digunakn sebagai media konfirmasi kepada user. seperti pertanyaan simpan, informasi Error atau informasi telah berhasil disimpan.
Pada Artikel sebelumnya, ExcelNoob telah membahas bagaimana membuat Msgbox menutup otomatis. Pada kesempatan kali ini, saya ingin membahas bagaimana membuat text atau tulisan pada Msgbox memiliki warna. secara default tulisan dalam msgbox ini adalah berwarna hitam. tetapi kali ini saya akan coba merubahnya dengan warna lain.
Merubah Warna Text Msgbox dengan GetSysColor
Untuk merubah warna tulisan dalam msgbox kita akan menggunakan sebuah Windows API dari user32.dll yg bernama GetSysColor. Silahkan kamu buka Visual Basic Editor dengan cara menekan ALT+F11 dan buatlah sebuah modul, lalu pastekan kode berikut ini
Visual Basic Editor#If Win64 Then Private Declare PtrSafe Function GetSysColor Lib "user32"(ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetSysColors Lib "user32" _ (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long #Else Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function SetSysColors Lib "user32" _ (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long #End If Private Const COLOR_WINDOWTEXT As Long = 8 Private Const CHANGE_INDEX As Long = 1
Kode diatas adalah deklarasi untuk memanggil Windows API. untuk penggunaan pada Msgbox adalah sebagai berikut.
Visual Basic EditorPublic Sub TestWarnaMsgbox() '// Auth : Excelnoob.com '// -------------------- Dim Warnadefault As Long Warnadefault = GetSysColor(COLOR_WINDOWTEXT) '//Set Warna system ke Merah menggunakan vbred SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed MsgBox "Ini adalah Pesan text Merah...", vbCritical + vbOKOnly, "ExcelNoob" '//selain menggunakan VB color '//Set warna bisa juga dengan Menggunakan RGB SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, RGB(51, 204, 204) MsgBox "Ini adalah pesan dengan warna RGB...", vbCritical + vbOKOnly, "ExcelNoob" '// Kembalikan warna System ke Asal SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, warnadefault End Sub
dan hasilnya akan seperti ini


Kenapa Variable warnadefault ada pada awal dan akhir kode? ini berfungsi untuk mengembalikan warna System kembali ke semula, karena jika tidak dikembalikan, semua text akan menggunakan warna tersebut, seperti contohnya pada gambar dibawah ini

Warna text System pada gambar diatas masih menggunaan vbred sebagai warna COLOR_WINDOWTEXT
Leave a Reply