Pasti banyak diantara penguna VBA disini yang sudah membuat sebuah Aplikasi dengan Userform yang terlihat bagus.
Namun ada kalanya kita mau Userform bisa berjalan tanpa terlihat Aplikasi Excel Terbuka.
Disini saya akan jelaskan beberapa langkah untuk menjalankan sebuah Userform tanpa harus menampilkan Aplikasi Excelnya.
Sepertinya yang sudah saya jelaskan pada materi sebelumnya, untuk menjalankan Macro VBA pada saat File dibuka, script VBA bisa disimpan dalam 3 tempat.
Bisa di Workbook_Open
, Bisa di Auto_Open
atau menggunakan OnLoad
. Dimana ketiganya akan dijalankan secara berurutan jika ada.
Misalnya pada contoh kali ini disini kita gunakan Workbook_open, dimana Events ini yang paling pertama akan dijalankan.
Cara pertama untuk menjalankan Userform tanpa menampilkan Aplikasi Excel, dimana aplikasi Excel dihilangkan seluruhnya yaitu dengan menggunakan fungsi Application.visible
yang di set False.
Notasi Scriptnya bisa ditulis seperti dibawah ini:
Private Sub Workbook_Open() Application.Visible = False UserForm1.Show Application.Visible = True End Sub
Dengan cara ini, pada saat file dibuka aplikasi Excel tidak akan terlihat dan hanya menampilkan Userform saja.
Kelihatannya cara ini sudah terlihat bagus, tetapi cara ini mempunyai kekurangan dimana Semua File Excel yang tebuka akan tidak terlihat dan ikut disembunyikan.
Cara lain selain menggunakan Application Visible adalah dengan menggunakan Windows Visible. Cara kedua ini bisa menjadi solusi dari kekurangan cara pertama.
Pada cara kedua ini menggunakan fungsi dari Windows.visible agar windows yang disembunyikan hanya file ini saja.
Untuk notasi scriptnya bisa ditulis seperti dibawah ini.
Private Sub Workbook_Open() Windows(ThisWorkbook.Name).Visible = False UserForm1.Show Windows(ThisWorkbook.Name).Visible = True End Sub
Dengan cara ini, file lain yang terbuka akan tetap terlihat dan pada File ini aplikasi Excelnya tidak terlihat dan hanya menapilkan Userform saja.
Agar Userform bisa berinteraksi dengan File Excel Lain gunakan vbModeless, materi ini sudah saya bahas di : Menampilkan Userform
vba.co.id
Kelihatannya cara kedua ini juga sudah cukup bagus, tetapi cara ini juga memiliki kelemahan dimana jika file yang dibuka hanya 1 saja, maka akan menyisakan sebuah windows kosong pada Aplikasi Excel.
Untuk cara ketiga ini adalah gabungan dari cara1 dan cara 2 dimana ini adalah gabungan yang sempurna. Disini kita memanfaatkan kelebihan dari cara 1 dan mengambil kelebihan dari cara 2, digabungkan dengan menggunakan fungsi IF.
Fungsi IF digunakan untuk mengecek jumlah File (Workbook) yang terbuka.
Jika jumlah workbook yang terbuka hanya 1 maka gunakan Application.Visible
sedangkan jika jumlah workbook yang terbuka lebih dari 1 maka gunakan Windows.visible
.
Notasi Scriptnya bisa ditulis seperti dibawah ini :
Private Sub Workbook_Open() If Workbooks.Count > 1 Then Windows(ThisWorkbook.Name).Visible = False Else Application.Visible = False End If UserForm1.Show vbModeless End Sub
Itulah cara bagaimana menjalankan Userform VBA tanpa menampilkan Aplikasi Excelnya. Tidak lupa tambahkan vbModeless
agar Userform bisa berinterasi dengan File lain yang sedang terbuka.
Maaf kang mau tanya, saya sdah selesai membuat beberapa userform. Dan saling berhubungan, mulai dari login lanjut ke userform menu dan beberpa pilihan import file copy data dari file excel lain, dan juga print. Nah setelah di setting agar hanya userform saja yg muncul, pas d bagian import file tiba2 lembar excelnya yg berisi macro/vba nya muncul. Pdahal file excel yg di ambil datanya tidak. Dimana kah letak kesalahan saya ya kang mhon pencetahan nya. Terima kasih