Menghilangkan Tombol Close (X) Pada Userform VBA Excel

Aplikasi Excelku. Selamat datang kembali di blog sederhana Saya ini, Alhamdulillah pada kesempatan kali ini Saya bisa untuk menyapa Sobat Blogger semuanya, khusus bagi Sobat Blogger yang selalu setia mengunjungi blog sederhana Saya ini.

Tak lupa saya ucapkan banyak terimakasih kepada Anda semuanya yang sudah mengunjungi blog sederhana Saya ini.

Dan sesuai dengan judul postingan/artikel kali ini, yaitu "Menghilangkan Tombol Close (X) Pada Userform VBA Excel". Maka melalui postingan/artikel ini Saya akan mencoba untuk memberikan sebuah tutorial sederhananya.

Pertama-tama karena kita akan menghilangkan Tombol Close (X) yang merupakan bawaan dari tampilan sebuah userform yang ada di Ms. Excel. Maka didalam tutorial ini juga akan Saya berikan juga sebuah tutorial sederhana bagaimana caranya untuk membuat sebuah tombol Close sebagai ganti tombol Close bawaan dari Userform tersebut. Dan berikut ini cara/langkah-langkahnya :

Cara Membuat Tombol Close VBA Ms. Excel :

1. Sisipkan sebuah CommandButton didalam Userform yang akan kita hilangkan tombol close (bawaannya);
2. Ubah nama CommandButton tersebut menjadi "CmdClose";

Menghilangkan Tombol Close (X) Pada Userform VBA Excel

3. Copy Code/Script Macro di bawah ini :

If MsgBox("Apakah Anda Yakin Ingin Keluar??!!", vbInformation + vbYesNo, ".: Aplikasi Excelku :.") = vbYes Then
   End If
Unload Me
4. Klik dua kali pada tombol Close yang tadi sudah kita buat, dan sisipkan/paste code/script macro tadi tepat dibawah code Private Sub CmdClose tadi, untuk lebih jelasnya lihat gambar di bawah ini :

Menghilangkan Tombol Close (X) Pada Userform VBA Excel


Dan prose pembuatan Tombol Close di Userform sudah selesai, dan kita kembali kepokok pembahasan kali ini, yakni Cara Untuk menghilangkan tombol Close (X) Didalam Userform Ms. Excel.

Ada dua cara yang bisa kita lakukan, dan tentunya disesuaikan dengan arsitektur Sistem Operasi (Windows) yang kita gunakan, dan berikut ini langkah-langkahnya :

Windows 32 Bit

1. Double Click/klik dua kali pada area Userform;
2. Copy dan pastekan code/script macro dibawah ini kedalam lembar kerja VBA dari Userform kita;

Option Explicit
'AplikasiExcelku.blogspot.com
Private Declare Function FindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong _
Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong _
Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Const WS_SYSMENU = &H80000
Const GWL_STYLE = (-16)

Private Sub UserForm_Activate()
Dim hWnd, lStyle As Long
hWnd = FindWindow("ThunderDFrame", Me.Caption)
lStyle = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong hWnd, GWL_STYLE, lStyle And Not WS_SYSMENU
End Sub


Windows 64 Bit

Bagi yang menggunakan Sistem Operasi Windows berasitektur 64 Bit, untuk caranya sama dengan di atas, hanya saja untuk code/script macronya sedikit berbeda, dan berikut ini code/script macronya :

Option Explicit
'AplikasiExcelku.blogspot.com
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare PtrSafe Function MoveWindow Lib "User32.dll" (ByVal HWnd As LongPtr, ByVal X As LongPtr, ByVal Y As LongPtr, ByVal nWidth As LongPtr, ByVal nHeight As LongPtr, ByVal bRepaint As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetWindowLong Lib "User32.dll" Alias "GetWindowLongA" (ByVal HWnd As LongPtr, ByVal nIndex As LongPtr) As Long
    Private Declare PtrSafe Function SetWindowLong Lib "User32.dll" Alias "SetWindowLongA" (ByVal HWnd As LongPtr, ByVal nIndex As LongPtr, ByVal dwNewLongPtr As LongPtr) As LongPtr
    Private Declare PtrSafe Function SetLayeredWindowAttributes Lib "User32.dll" (ByVal HWnd As LongPtr, ByVal crKey As LongPtr, ByVal bAlpha As Byte, ByVal dwFlags As LongPtr) As LongPtr
    Private Declare PtrSafe Function DrawMenuBar Lib "User32.dll" (ByVal HWnd As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function ReleaseDC Lib "User32.dll" (ByVal HWnd As LongPtr, ByVal hDC As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetDC Lib "user32" (ByVal HWnd As LongPtr) As Long
    Private Declare PtrSafe Function SetTimer Lib "user32" (ByVal HWnd As LongPtr, ByVal nIDEvent As LongLong, ByVal uElapse As LongPtr, ByVal lpTimerFunc As LongPtr) As Long
    Private Declare PtrSafe Function KillTimer Lib "user32" (ByVal HWnd As LongPtr, ByVal nIDEvent As LongPtr) As Long
    Private Declare PtrSafe Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFilename As String) As LongPtr
    Private Declare PtrSafe Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFilename As String) As LongPtr
    Private Declare PtrSafe Function AddFontMemResourceEx Lib "Gdi32.dll" (ByVal pbFont As LongPtr, ByVal cbFont As Integer, ByVal pdv As Integer, ByRef pcFonts As Integer) As LongPtr
Const WS_SYSMENU = &H80000
Const GWL_STYLE = (-16)

Private Sub UserForm_Activate()
Dim HWnd, lStyle As Long
HWnd = FindWindow("ThunderDFrame", Me.Caption)
lStyle = GetWindowLong(HWnd, GWL_STYLE)
SetWindowLong HWnd, GWL_STYLE, lStyle And Not WS_SYSMENU
End Sub

Jika sudah, silahkan tekan tombol F5 pada keybord dan lihat hasilnya, seharusnya akan seperti pada gambar di bawah ini :

Menghilangkan Tombol Close (X) Pada Userform VBA Excel


Note: Hanya Berjalan di Office 32 bit

Demikian pembahasan pada kesempatan kali ini, mudah-mudahan apa yang sudah Saya sampaikan bisa bermanfaat untuk kita semuanya. Terimakasih dan Salam Aplikasi Excelku.

Post a Comment for "Menghilangkan Tombol Close (X) Pada Userform VBA Excel"