Cara Menambah Icon ke UserForm VBA Excel

Jika dilihat pada aplikasi-aplikasi yang berjalan di windows, pada bagian userform di pojok atas selalu menampilkan sebuah Icon yang menunjukan identitas dari aplikasi tersebut.

Jika sebelumnya kamu pernah membuat sebuah userform menggunakan VBA Excel, Userform yang ditampilan hanya memiliki sebuah Caption saja tanpa adanya Sebuah Icon seperti yang dimiliki oleh aplikasi-apaliakasi pada umumnya.

Userform yang dibuat dengan VBA Excel Standart akan terlihat seperti pada Gambar diawah ini. Tidak ada Icon pada Userform tersebut.

UserForm Tanpa Icon VBA Excel

Lalu bagaimana cara menambahkan Icon ke dalam Userform yang dibuat di VBA Excel?.

Jika kamu mencari pada properties Windows yang di dimiliki Userform kamu tidak akan menemukan sebuah property atau method untuk menambahkan Icon. Ya, kerana Icon ini tidak bisa ditambahkan melalui property Userform.

Agar kamu bisa menambahkan sebuah Icon kedalam Userform, kamu harus menggunakan Windows API yang berfungsi untuk mengirimkan icon ke Userform.

Berikut ini adalah Script Windows API yang digunakan.

Rem Auth : ExcelNoob.com
#If VBA7 And Win64 Then
Private Declare PtrSafe Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
(ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare PtrSafe Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
(ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
#Else
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
(ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
(ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
#End IF

Function BuatIcon(caption As String)
Dim Hwnd As Long
Dim iconPath As String
Dim xIcon As Long
Dim msg As Long

iconPath = "C:\LokasiFile\NamaFile.ico"

Hwnd = FindWindow("ThunderDframe", caption)
xIcon = ExtractIcon(0, iconPath, 0)

SendMessage Hwnd, WM_SETICON, 1, xIcon
SendMessage Hwnd, WM_SETICON, 0, xIcon

End Function

Copy script diatas ke dalam Module. Untuk penggunaannya cukup mudah, hanya tinggal menambahkan script pada UserForm yang ingin ditambahkan icon pada bagian Event initialize. Untuk Script nya seperti dibawah ini.

Private Sub UserForm_Initialize()
BuatIcon Me.caption
End Sub

Jika sudah berhasil, Userform akan terlihat seperti dibawah ini, memiliki sebuah icon pada Pojok kanan atas.

UserformIcon VBA

Tutorial ini juga bisa di lihat melalui YouTube Jika kamu ingin lebih memahami lagi dalam pengunaan Script diatas.

Untuk tutorial Bisa dilihat disini : Menampilkan Icon Pada Userform

Be the first to comment

Leave a Reply

Your email address will not be published.


*