TpG6BSAiBUYlBUY5TUr5GfriGi==

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

 MlatenMania.com - User Form adalah jendela atau kotak dialog yang merupakan bagian dari antarmuka pengguna aplikasi Ms. Excel. Dalam VBA Excel User Form memiliki berbagai macam fitur yang dapat digunakan untuk meng-input data dengan berbagai macam cara, misalnya seperti mengetik langsung atau memilih suatu data tertentu.

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Membuat Userform Di Excel

Untuk membuat sebuah Userform kita harus masuk/membuka lembar kerja Visual Basic pada aplikasi Ms. Excel kita, caranya adalah:

1. Melalui Menu Developer

Untuk membuka lembar kerja Visual Basic Excel kita bisa menggunakan Menu Developer, dengan cara klik pada Menu Developer, kemudian klik lagi pada Visual Basic:

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Jika pada lembar kerja Ms. Excel belum ada Menu Developer, bisa membaca artikel Saya seblumnya yang berjudul Cara Untuk Menampikan Tab Menu Developer Di Ms. Excel

2. Menggunakan Keyboard Shortcut

Cara yang kedua adalah dengan menggunakan keyboard shorcut, yaitu kombinasi antara tombol Alt+F11, tekan kedua tombol tersebut secara bersamaan.

Catatan:

Biasa pada Laptop kita tidak bisa mengakses keyboard shorcut tersebut, dan kita harus menyetingnya terlebih dahulu melalui BIOS Laptop kita. Atau biasanya bisa juga dengan kombinasi tombol fn+Alt+F11.

Setelah terbuka lembar kerja Visual Basic, sekarang klik pada Menu Insert, kemudian pilih/klik pada Userform:

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Silahkan tentukan ukuran (tinggi dan lebar) dari Userform sesuai dengan kebutuhan masing-masing. 

Contoh Userform

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Menghilangkan Tombol Close Bawaan Userform

Bisa Anda lihat pada gambar di atas, pada pojok kanan atas dari Userform terdapat tmbol close yang bergambar "X", dimana tombol tersebut berfungsi untuk menutup Userform pada saat Userform tersebut dijalankan. Dan tombol close tersebut merupakan bawaan dari Userform yang ada/muncul setiap kali kita membuat sebuah Userform.

Untuk menghilangkan tombol close bawaan Userform tersebut, kita bisa menggunakan script/code VBA. Namun, sebelumnya kita harus membuat sebuah tombol yang nantinya kita gunakan sebagai tombol close agar nantinya kita bisa menutup Userform tersebut. Berikut penjelasan lengkapnya:

1. Membuat Tombol Close

Seperti yang sudah Saya jelaskan di atas, sebelum kita menghilangkan tombol close bawaan Userform kita harus membuat tombol close yang nantinya kita gunakan untuk menutup Userform-nya. Dan untuk membuat tombol close kita bisa klik pada ToolsBox kemudian klik pada CommandButton kemudian arahkan mouse ke Userform untuk membuat sebuah tombol:

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Dan hasil akhirnya seperti pada gambar contoh di bawah ini:

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Untuk tulisan/caption-nya disesuaikan dengan kebutuhan/keinginan masing-masing.

Selanjutnya menyisipkan script/code Macro di bawah ini ke dalam tombol close buatan kita tadi:

Private Sub CommandButton1_Click()
Unload Me
End Sub

Klik kanan pada tombol close tadi, kemudian pilih view code dan paste script/code Makro di atas

2. Menyisipkan Script/Code Makro Untuk menghilangkan tombol close bawaan userform

  • Sisipkan sebuah Module terelebih dahulu, dengan cara klik pada Menu Insert kemudian pilih/klik pada Module:
Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

  • Copy dan Paste Script/code Macro di bawah ini ke dalam Module tersebut:
Option Explicit
Private Const GWL_STYLE = -16
Private Const WS_CAPTION = &HC00000
Private Const WS_SYSMENU = &H80000
Private Const SC_CLOSE = &HF060
#If VBA7 Then
    Private Declare PtrSafe Function GetWindowLong _
        Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, _
        ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function SetWindowLong _
        Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, _
        ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare PtrSafe Function DrawMenuBar _
        Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare PtrSafe Function FindWindowA _
        Lib "user32" (ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
    Private Declare PtrSafe Function DeleteMenu _
        Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, _
        ByVal wFlags As Long) As Long
    Private Declare PtrSafe Function GetSystemMenu _
        Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
#Else
    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
    Private Declare Function DrawMenuBar _
        Lib "user32" (ByVal hWnd As Long) As Long
    Private Declare Function FindWindowA _
        Lib "user32" (ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
    Private Declare Function DeleteMenu _
        Lib "user32" (ByVal hMenu As Long, _
        ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Public Declare Function GetSystemMenu _
        Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
#End If

Public Sub SystemButtonSettings(frm As Object, show As Boolean)
    Dim windowStyle As Long
    Dim windowHandle As Long
    windowHandle = FindWindowA(vbNullString, frm.Caption)
    windowStyle = GetWindowLong(windowHandle, GWL_STYLE)
    If show = False Then
        SetWindowLong windowHandle, GWL_STYLE, (windowStyle And Not WS_SYSMENU)
    Else
        SetWindowLong windowHandle, GWL_STYLE, (windowStyle + WS_SYSMENU)
    End If
    DrawMenuBar (windowHandle)
End Sub

Public Sub CloseButtonSettings(frm As Object, show As Boolean)
    Dim windowHandle As Long
    Dim menuHandle As Long
    windowHandle = FindWindowA(vbNullString, frm.Caption)
    If show = True Then
        menuHandle = GetSystemMenu(windowHandle, 1)
    Else
        menuHandle = GetSystemMenu(windowHandle, 0)
        DeleteMenu menuHandle, SC_CLOSE, 0&
    End If
End Sub

  • Copy dan Paste Script/code Makro di bawah ini ke dalam Userform:

Private Sub UserForm_Initialize()
Call SystemButtonSettings(Me, False)
End Sub

Hasil akhirnya akan seperti pada gambar di bawah ini:

Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform

Sekarang tombol Close bawaan Userform sudah tidak ada lagi, dan untuk menutup Userform kita bisa menggunakan tombol close yang sudah kita buat sebelumnya.

Mungkin hanya itu saja artikel mengenai Belajar VBA Excel : Menghilangkan Tombol Close Bawaan Userform, mudah-mudahan bisa bermanfaat untuk semuanya. Terimakasih

Komentar0

Tinggalkan komentar Anda disini: