Panduan Vba Excel: Module Dan Procedure #03 | Kelas Excel
Panduan dasar Macro VBA Excel wacana pemahaman module dan procedure yang membicarakan perihal jenis-jenis module dan bagaimana melaksanakan deklarasi procedure pada VBA Excel lengkap dengan latihan penulisan kode VBA-nya.

Pada pecahan pertama seri tutorial VBA Excel Dasar ini kita sudah berguru menulis beberapa baris kode VBA excel sederhana. Pada halaman tersebut diterangkan bahwa diantara tindakan untuk menyusun suatu kode macro VBA yakni membuka VBE kemudian menciptakan suatu modul baru.
Penjelasan lebih lanjut perihal VBE atau Visual Basic Editor bisa anda pelajari pada pecahan kedua seri Tutorial VBA Dasar ini , sedangkan pada pecahan ketiga ini Anda akan kami ajak untuk mengenal lebih jauh wacana apa itu Module dan Procedure pada VBA Excel.
Saya kira pembahasan ini cukup penting dan masih jarang sekali ada yang membahasnya. Meskipun cuma sebatas citra lazim , dengan tutorial ini prospeknya Anda yang masih mulai berguru VBA akan mendapat citra bagaimana dan dimana mesti menuliskan script-script VBA secara benar.
Module Pada VBA Excel
Bagaimana pemahaman module pada VBA Excel?
Dalam pemahaman yang sederhana modul sanggup diartikan selaku kawasan untuk menyimpan kode-kode VBA. Jika VBE ialah suatu rumah anda sanggup membayangkan kamar-kamar atau ruangan pada rumah tersebut selaku suatu modul , dimana pada masing-masing kamar atau ruangan tersebut tersimpan banyak sekali macam barang lain dengan fungsi-fungsi tertentu.
Barang lain yang dimaksudkan dalam pembahasan VBA ini yakni Procedure VBA yang didalamnya termuat kode-kode kesibukan dengan fungsi dan tujuan tertentu.
Pada VBA Excel , setidaknya dipahami ada 4 macam tipe Module selaku berikut:
- Standart Module:
Biasa disebut selaku modul kode atau modul saja ialah jenis modul lazim yang sanggup diisi dengan banyak mekanisme serta fungsi-fungsi tertentu. Tipe modul inilah yang hendak sering anda pakai dalam menyusun kode-kode VBA. - Workbook dan Sheet Module
Adalah modul khusus yang terikat pribadi pada objek Workbook dan Sheet. Modul untuk workbook disebut ThisWorkbook , dan modul untuk setiap sheet atau Lembar kerja memiliki nama yang serupa dengan nama sheetnya. Jenis modul ini sebenarnya menyerupai dengan Standart Module , cuma saja pada jenis ini sanggup juga diisi dengan event procedures.
Event procedure ini semacam detonator atau pemicu aktifnya suatu kode. Jika anda sudah pernah mengenal VBA saya kira anda sudah cukup faham bahwa untuk menjalankan suatu kode butuh pemicu tertentu semisal klik pada suatu tombol. Selain memakai tombol suatu kode juga bisa berlangsung dalam keadaan tertentu. Kondisi atau aktifitas yang terjadi pada object VBA inilah yang dimaksud dengan Event , misal kita ingin menjalankan beberapa baris kode di saat file dibuka , di saat suatu sheet aktif dan lain sebagainya , maka event procedure inilah yang kita butuhkan. Lebih lanjut mengenai event procedure ini akan kita diskusikan lain waktu. - User Forms
Merupakan jenis modul yang ialah pecahan dari objek UserForm , dan berisi prosedur-prosedur VBA serta event procedure untuk kontrol-kontrol yang terkait dengan objek Form. - Class Module
Modul jenis ini dipakai untuk menciptakan suatu objek gres pada VBA. Untuk di sekarang ini anda tidak perlu terlalu mempertimbangkan jenis modul ini.
Pada modul-modul inilah nantinya Anda akan menempatkan dan menggolongkan prosedur-prosedur VBA sesuai kebutuhan.

Pada di saat menciptakan suatu file excel , kemudian membuka VBE maka excel secara otomatis sudah mempersiapkan modul workbook dan modul sheet sejumlah sheet yang terdapat pada file tersebut. Defaultnya ada tiga modul sheet yang dapat anda minimalisir atau anda tambahkan sesuai kebutuhan. Adapun untuk jenis modul yang lain anda mesti menambahkannya secara manual lewat santapan insert menyerupai yang sudah diterangkan pada tutorial sebelumnya.
Tipe Modul 2 dan 3 atau Modul Workbook , sheet dan User forms biasa juga disebut selaku Object Module alasannya modul-modul ini memiliki bentuk positif berupa Workbook , WorkSheet , Userform , Chart , dan lain-lain. Umumnya kode-kode VBA yang terdapat pada modul ini cuma berlaku pada object terkait. Misal pada Modul Sheet1 maka kode-kode yang kita buat didalamnya cuma berlaku untuk Sheet1 saja dan tidak dapat diundang untuk Sheet2.
Adapun Standart Modul atau Modul Tipe 1 biasa disebut juga selaku Code Module (Modul Kode) ialah wadah untuk seluruh mekanisme atau variabel yang dapat dipakai oleh module yang yang lain juga , selama mekanisme atau variabel tersebut dideklarasikan selaku Public.
Beberapa kali saya menyebutkan ungkapan procedure , sebenarnya barang macam apa sih ini?
Procedure Pada VBA Excel
Procedure yakni blok kode program yang berisi baris-baris perintah tertentu di antara baris statement pembuka prosedure dan statement epilog prosedure untuk menjalankan kiprah atau tindakan tertentu.
Apabila di dalam kode kesibukan atau project VBA yang kita buat ada perintah-perintah untuk melaksanakan kiprah atau aktifitas yang serupa di beberapa kawasan , maka akan lebih baik perintah-perintah tersebut dibentuk dalam suatu procedure. Kemudian , procedure itu dapat di-panggil pada procedure yang lain di saat diperlukan.
Penggunaan procedure sungguh meminimalisir penulisan kode kesibukan , lantaran kode-kode kesibukan yang serupa dibeberapa kawasan cukup dibentuk pada satu pecahan saja. Selain itu , eksistensi procedure akan mempermudah perbaikan jika terjadi pergeseran atau kesalahan , lantaran perbaikan cukup dilaksanakan pada satu pecahan saja.
Struktur Procedure VBA Excel
Struktur deklarasi suatu mekanisme VBA berisikan 3 bagian:
- Statement Pembuka atau Awal
- Kode program
- Statement Penutup atau akhir
Sebuah procedure yang dituliskan pada suatu modul senantiasa diawali dengan statement pembuka dan diakhiri dengan suatu statemen penutup. Kemudian kode-kode kesibukan yang dilaksanakan oleh procedure tersebut dituliskan diantara kedua statement tersebut.
Perhatikan pola procedure sederhana berikut:

Seperti terlihat pada pola mekanisme di atas , cara penulisan suatu mekanisme sederhana setidaknya menyerupai dibawah ini:
[Scope] JenisProsedur NamaProsedur()'Baris kode kesibukan 1 , dst.End JenisProsedurSelanjutnya akan kita pelajari klarifikasi lazim untuk masing-masing pecahan pada mekanisme VBA.
Deklarasi Statement Procedure
Statement pembuka atau deklarasi suatu prosedure setidaknya mesti menampung 3 hal:
[Scope] JenisProsedur NamaProsedur()Ketiga hal diatas yakni bentuk tersederhana dalam deklarasi prosedure. Kaprikornus , setiap deklarasi mekanisme , minimal akan senantiasa berisi 3 hal tersebut , yaitu: scope , jenis mekanisme , nama prosedur.
Sebenarnya statement deklarasi suatu mekanisme VBA tidak cuma ini saja , ada beberapa keyword lain yang juga bisa Anda sertakan , cuma saja untuk mempersempit pembahasan , 3 pecahan utama deklarasi ini saya kira sudah cukup untuk di saat ini.
Scope Pada VBA Excel
Karena pembahasan Procedure juga melibatkan Scope , maka saya kira penting untuk memperlihatkan citra lazim wacana Scope pada VBA Excel.
Istilah Scoope dipakai untuk menggambarkan bagaimana sebuah variabel sanggup diakses dan bagaimana suatu mekanisme sanggup dipanggil. Hal ini bergantung pada di mana dan bagaimana suatu variabel atau mekanisme dideklarasikan. Istilah visibilty juga dipakai untuk menggambarkan scope(ruang lingkup). Kedua ungkapan ini setara.
Ada 4 level scope dari ruang lingkup terkecil hingga terbesar:
- Procedure:
Variabel yang dipakai secara setempat dalam mekanisme itu saja dan tidak dapat diakses oleh mekanisme dari module lain secara langsung. Usia pakai variabel yakni selama mekanisme itu diproses. Jika mekanisme sudah selesai diproses , maka variabel dibuang dari memori komputer. - Module:
Prosedur atau variabel yang dipakai oleh seluruh mekanisme yang ada dalam module tersebut dan tidak sanggup diakses secara pribadi oleh mekanisme dari module lain. - Project:
Prosedur atau variabel yang dipakai oleh seluruh mekanisme yang ada dalam VBAProject tersebut. Usia pakainya yakni sejak VBAProject di-load ke memori komputer , yakni sesaat sehabis melalui security macro , hingga di saat workbook selesai ditutup. - Global:
Prosedur , variabel , atau class yang dipakai oleh seluruh mekanisme dari VBAProject lain. Pintu penggunaannya yakni dengan menciptakan rujukan ke VBAProject yang dibutuhkan. Misal , VBAProject1 memiliki mekanisme , variabel , atau class yang ber-scope global. VBAProject2 bisa memakai apa yang ada di VBAProject1 kalau VBAProject2 menyertakan VBAProject1 dalam referensinya.
Scope dideklarasikan dengan keyword tertentu:
- Public
Dengan memakai Keyword "Public" intinya variabel atau mekanisme bisa dipakai dimana saja. - Private
Dengan memakai Keyword "Private" intinya , variabel atau mekanisme cuma bisa dipakai oleh module yang memakai keyword ini. - Friend
Keyword ini khusus untuk object dan class module saja dan dipakai oleh VBProject dimana keyword Friend digunakan. - Dim
Keyowrd ini dipakai untuk khusus untuk mendeklarasikan suatu variabel. Pada dasarnya , cuma bisa dipakai oleh kode kesibukan yang ada sehabis baris deklarasi variabel.
Pembahasan perihal scope ini sebenarnya cukup panjang dan biasanya akan cukup membingungkan kalau anda gres mengenal VBA Excel. Untuk tahap pengenalan VBA ini gunakan saja cara simpel pemakaiannya selaku berikut :
- Gunakan Dim untuk mendeklarasikan variabel didalam mekanisme saja.
- Gunakan Private untuk variabel atau mekanisme yang cuma boleh dipakai atau diundang didalam module tersebut saja.
- Gunakan Public untuk variabel atau mekanisme yang boleh dipakai dimana saja didalam VBProject tersebut.
Tipe atau Jenis Procedure VBA Excel
Secara lazim ada 2 tipe procedure pada VBA , yakni Sub Procedure dan Function Procedure.
- Sub Procedure
Sub Procedure ialah suatu procedure yang cuma menjalankan aktifitas tertentu tanpa menciptakan suatu nilai (Value). Aktifitas pada procedure ini tergantung pada baris-baris perintah yang terdapat pada procedure tersebut. - Function Procedure
Function Procedure ialah suatu procedure yang menciptakan suatu nilai (Value).
Anda tentu sudah mengenal banyak sekali macam functions atau fungsi excel semisal fungsi SUM , AVERAGE dan lain sebagainya. Cara kerja Function Procedure ini sungguh menyerupai dengan fungsi-fungsi excel ini. Hanya saja fungsi-fungsi tersebut memang sudah ada didalam excel. Jika kita memerlukan fungsi tertentu yang belum ada , Anda bisa menciptakan suatu fungsi khusus yang sering disebut selaku UDF (User Defined Functions) semisal fungsi terbilang excel.
Lain waktu akan kita ulas lebih dalam wacana kedua tipe procedure ini pada suatu postingan tersendiri. Untuk di sekarang ini silahkan Anda biasakan dahulu untuk memakai mekanisme dengan tipe Sub apalagi dahulu.
Selain kedua jenis mekanisme di atas sebenarnya masih ada jenis mekanisme yang lain pada VBA excel yakni Jenis Property Procedure.
Prosedur jenis ini dipakai untuk mengisi nilai ke suatu variabel atau mengambil nilai dari suatu variabel.
Umumnya jenis mekanisme property dipakai di saat membentuk suatu custom class dalam Class Module. Kaprikornus , intinya , mekanisme jenis ini bisa dipakai dimana saja menyerupai halnya mekanisme jenis Sub maupun Function.
Prosedur property berisikan :
- Let: untuk memasukkan nilai kedalam variabel selain object dan kerjanya menyerupai dengan penggunaan jenis Sub
- Set: untuk memasukkan nilai kedalam variabel object dan kerjanya menyerupai dengan penggunaan jenis sub
- Get: untuk mengambil nilai dari suatu variabel dan kerjanya menyerupai dengan jenis Function
Lain waktu akan kita diskusikan wacana property , tetapi sebelum itu Anda mesti sudah mengetahui dahulu wacana Tipe Sub dan Function.
Nama Procedure VBA Excel
Sebuah Prosedur mesti diberi nama. Aturan utama yang mesti Anda ikuti di saat menamai suatu mekanisme VBA yakni selaku berikut:
- Karakter pertama mesti berupa Letter Abjad (A-Z ,a-z).
- Karakter selanjutnya sanggup berupa abjad , angka atau karakter tanda baca tertentu (tidak semua tanda baca bisa digunakan).
- Tidak boleh memakai titik (.) Dan spasi ( ) juga tidak dapat memakai karakter berikut: # , $ ,% , & , @ , ^ , * dan !.
- Tidak ada perbedaan antara abjad besar dan abjad kecil.
- Jumlah maksimum karakter yang dapat dipakai yakni 255.
Penjelasan lain perihal hukum menamai procedure ini bisa anda baca pada halaman microsoft berikut.
Sebaiknya nama yang dipakai untuk suatu procedure itu deskriptif , bermakna dan tidak ambigu sehingga sanggup mewakili tujuan atau fungsi dari prosedure tersebut. Dengan demikian di saat anda membaca namanya saja anda akan dengan gampang mengenali maksud dari isi kode kesibukan pada procedure tersebut. Kaprikornus jangan sembarangan menciptakan suatu nama procedure sehingga Anda akan dibentuk gundah di saat suatu project VBA sudah menampung banyak procedure.
Baris Kode Program VBA Excel
Baris kode biasanya ialah suatu Executable statements , ialah suatu baris kesibukan yang berisi perintah VBA untuk melaksanakan sesuatu yang pastinya mesti mengikuti kaidah-kaidah penulisan VBA.
Baris kode pada suatu mekanisme VBA senantiasa diproses baris per baris. Kaprikornus bedakan antara baris kesibukan dan baris penulisan.
Baris kesibukan pastilah senantiasa satu baris. Satu baris kesibukan ini bisa ditulis dalam beberapa baris penulisan dan ada kemungkinan beberapa baris kesibukan ditulis dalam satu baris penulisan.
Dalam penulisan baris kesibukan , terdapat beberapa karakter khusus yang berarti atau tujuan khusus , antara lain :
- Tanda petik tunggal (')
Karakter ini menunjukan bahwa mulai dari karakter petik tunggal ini ialah suatu keterangan atau teks yang tidak perlu diproses. Teks atau keterangan ini biasanya dipakai untuk memperlihatkan klarifikasi pada baris-baris kode VBA. - Underscore (_)
Karakter ini menunjukan pindah baris penulisan untuk satu baris kesibukan tersebut. Jika suatu baris kode kesibukan cukup panjang , gunakan underscore untuk menandai bahwa baris selanjutnya ialah kelanjutan dari baris kesibukan tersebut. - Titik dua (:)
Karakter ini dipakai untuk menandai selesai suatu baris program. Titik dua (:) ini ialah kebalikan dari karakter underscore (_). Jika Underscore dipakai untuk memisahkan 1 baris kesibukan menjadi beberapa baris , titik dua dipakai untuk memicu beberapa baris kesibukan menjadi 1 baris saja. Artinya , dalam satu baris penulisan akan terdapat beberapa baris program.
Statement Akhir Procedure
Sebuah mekanisme VBA senantiasa diakhiri atau ditutup dengan keyword "END" yang disertai dengan jenis prosedure. Contoh:"End Sub" atau "End Function".
End JenisProsedurLatihan VBA Excel
Untuk lebih mengetahui tutorial VBA pada halaman ini , silahkan ikuti latihan-latihan berikut.
Latihan 1
Sebisa mungkin kerjakan penulisan setiap kode secara manual (Jangan Copy Paste) agar sekaligus melatih kepekaan anda pada kode-kode VBA.
- Buat suatu file excel gres dengan ekstensi .xlsm dan beri nama file "Kelas Excel-Latihan VBA 2". Simpan file ini pada folder yang sudah kita siapkan pada panduan VBA sebelumnya.
- Pada modul ThisWorkbbok buatlah suatu mekanisme berikut:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)'Ini pola Event procedure pada modul ThisWorkbookMsgBox "Sheet tertentu pada file ini sedang aktif"End Sub - Jika sudah , cobalah untuk berpindah antar sheet pada workbook anda. Apa yang terjadi?
Saat anda mengaktifkan Sheet1 , sheet2 atau sheet3 maka akan timbul suatu kotak pesan (Message Box) yang berisi teks: "Sheet tertentu pada file ini sedang aktif". Event Prosedur pada thisWorkbook tadi berlangsung di saat anda mengaktifkan sheet manapun pada file. - Selanjutnya Pada modul Sheet1 buatlah suatu mekanisme berikut:
Private Sub Worksheet_Activate()'Ini pola Event procedure pada modul sheetMsgBox "Sheet 1 Sedang aktif"End Sub - Sekarang cobalah untuk mengaktifkan Sheet1 , Sheet2 dan Sheet3 pada file tersebut secara bergantian. Apa yang terjadi?
Saat anda mengaktifkan Sheet1 selain timbul pesan dari kode pada ThisWorkbook tadi timbul pesan lain yang ialah hasil dari kode pada modul Sheet1. Sedangkan pada Sheet2 dan Sheet3 tidak berlaku hal yang sama.
Dari latihan ini , anda dapat berguru bahwa event procedure pada thisWorkbook kokoh pada semua Sheet sedangkan event procedure pada suatu sheet tidak kokoh pada Sheet lain.
Latihan 2
Masih pada file yang serupa kerjakan beberapa hal berikut:
- Tambahkan 2 standart modul gres dengan klik Insert--Module.
- Aktifkan Modul 1 (Double klik) kemudian tulis buatlah prosedure VBA berikut:
Public Sub latihanMacro1()'Ini mekanisme public dengan nama "latihanMacro1"MsgBox "Ini mekanisme public pada -Modul 1- dengan nama -latihanMacro1-"MsgBox "Belajar VBA by -Kelas Excel-"End Sub - Jalankan sub mekanisme tersebut.
- Buatlah 2 mekanisme gres dibawah mekanisme latihanMacro1 tadi , kode VBA-nya selaku berikut:
Prosedur latihanMacro2:Sub latihanMacro2()'Ini mekanisme dengan nama "latihanMacro2"MsgBox _"Ini mekanisme pada -Modul 1- dengan nama -latihanMacro2-"MsgBox "Belajar VBA by -Kelas Excel-"End Sub
Prosedur latihanMacro3:Private Sub latihanMacro3()'Ini mekanisme private _ dengan nama "macroUmum3"MsgBox "Ini mekanisme private dengan nama -latihanMacro3-": MsgBox "Belajar VBA by -Kelas Excel-"End Sub - Jalankan masing-masing sub prosedure tersebut secara bergantian.
Pada latihan di atas saya ingin menekankan bagaimana cara menciptakan suatu mekanisme sederhana pada suatu modul serta bagaimana memakai tanda baca petik tunggal (') , underscore(_) dan titik dua(:).
Silahkan baca ulang penjelasannya pada pecahan sebelumnya.
Latihan 3
Jika sudah bisa memhami maskud dari prosedur-prosedur di atas , kini kita teruskan dengan latihan 3.
- Masih pada file yang serupa , buka standart Modul 2 , kemudian buatlah suatu sub prosedure dengan nama latihanMacro4 dengan kode selaku berikut:
Sub latihanMacro4()'Memanggil mekanisme latihanMacro1latihanMacro1End Sub - Jalankan prosedure tersebut.
Prosedure latihanmacro4 ini bermaksud mengundang atau menjalankan mekanisme latihanMacro1 dengan cara menuliskan nama prosedure yang hendak diundang tadi. Saat latihanMacro4 dijalankan maka mekanisme ini akan mengundang dan menjalankan kode kesibukan yang ada di latihan Macro1. - Selanjutnya kita buat 2 mekanisme lain pada modul 2 dengan masing-masing kode selaku berikut:
Prosedur latihanMacro5:Sub latihanMacro5()'Memanggil mekanisme latihanMacro2latihanMacro2End Sub
Prosedur latihanMacro6:Sub latihanMacro6()'Memanggil mekanisme latihanMacro3latihanMacro3End Sub - Jika sudah silahkan coba kerjakan kedua prosedure di atas secara bergantian. Apa yang terjadi?
Saat latihanMacro5 dijalankan mekanisme ini mengundang untuk menjalankan mekanisme latihanMacro2 sehingga yang timbul yakni kotak pesan menyerupai yang dapat andalihat di saat menjalankan mekanisme latihanMacro2.
Saat latihanMacro6 dijalankan yang terjadi yakni error "Compile error: Sub or Functions not Defined" menyerupai gambar dibawah ini:![Compile error: Sub or Functions not Defined Compile error: Sub or Functions not Defined]()
Kenapa terjadi hal demikian? Ya tebakan anda benar , alasannya deklarasi pada latihanMacro3 scopenya yakni private , sehingga mekanisme tersebut cuma bisa diundang dari modul 1 dan tidak sanggup diundang dari modul 2.
Selain menjajal sedikit mengetahui wacana scope private dan public dari latihan ke-3 ini saya ingin menyodorkan juga intinya sub mekanisme pada suatu modul standart scopenya yakni public sehingga kalau Anda tidak menuliskan keyword Public pada suatu mekanisme VBA didalam suatu modul standart , maka akan dianggap selaku public (lihat latihanMacro1 dan latihanMacro2) dan cuma dianggap private kalau anda menyertakan keyword "Private" pada mekanisme tersebut (latihanMacro3).
Jika anda masih gundah dengan klarifikasi pada halaman ini , sungguh bisa saya maklumi lantaran kekurangan kesanggupan saya untuk menegaskan kata-kata. Untuk itu jangan sungkan-sungkan untuk mengajukan pertanyaan lewat pecahan komentar yang sudah tersedia.
Untuk melengkapi pembahasan kali ini silahkan download File latihan di bawah ini :
LINK DOWNLOAD TERKUNCI.
Silahkan SHARE untuk membuka kunci!
Sekian dahulu pembahasan kita perihal Module dan Procedure pada VBA Excel. Jika tutorial ini berharga silahkan juga untuk dibagikan sehingga mitra anda yang lain juga ikut mendapat manfaatnya.
Terimas kasih , hingga jumpa pada seri tutorial VBA Dasar selanjutnya kita akan berguru wacana Tipe Data pda VBA Excel.

Tidak ada komentar untuk "Panduan Vba Excel: Module Dan Procedure #03 | Kelas Excel"
Posting Komentar