Mengenal Konstanta Dan Variabel Pada Vba Excel #05 | Kelas Excel
Menjelaskan pengertian konstanta dan variabel pada VBA Excel dan cara mendeklarasikan variabel maupun konstanta pada suatu mekanisme atau modul VBA Excel. Serta bagaimana cara mengendalikan scope dan lifetime suatu Variabel VBA

Seperti yang sudah saya sampaikan pada tutorial sebelumnya , setelah membahas mengenai Tipe data (Data Type) pada VBA kita akan melanjutkan seri tutorial VBA Dasar ini dengan membahas ungkapan Konstanta dan Variabel pada VBA serta bagaimana menggunakannya dalam suatu arahan VBA Excel.
Jika anda sudah sudah biasa memakai rumus excel saya Yakin Anda akan cepat mengerti maksud dari kedua ungkapan ini (Konstanta dan Variabel). Sebab , barangkali secara tidak sadar bergotong-royong anda juga sudah memakai Konstanta atau Variabel selaku pecahan dari suatu elemen rumus excel tertentu.
Wah , jangan bilang anda masih belum faham tantang elemen penyusun rumus excel ya. Jika benar demikian , sebelum melanjutkan membaca klarifikasi mengenai Konstanta dan Variabel VBA ini saya sarankan apalagi dahulu untuk membaca halaman yang menerangkan mengenai fungsi dan formula excel berikut: Pengenalan Rumus dan Fungsi Pada Microsoft Excel.
Selein itu Anda akan kami ajak juga untuk lebih mengerti mengenai Istilah Scope atau runga lingkup VBA dan ungkapan lifetime VBA.
Baca-pelan-pelan dan jangan lupa siapkan dahulu kopi dan cemilannya.
Konstanta VBA Excel
Bagaimanakah pengertian Konstanta pada VBA Excel?
Pada pembahasan sebelumnya sudah saya sampaikan bahwa intinya VBA Excel ada kalanya menyimpan data selaku suatu objek dan ada kalanya menyimpan data selaku suatu Variabel. Penyimpanan data dalam bentuk variabel yang tetap dan tidak berganti biasa disebut selaku konstanta.
Jadi Konstanta pada VBA Excel yakni daerah penyimpanan bagi suatu nilai tertentu yang mana nilai ini tetap dan tidak sanggup berubah. Hal ini bermakna bahwa ketika dipakai Konstanta bersifat read only yang mana Nilai dalam konstanta ditetapkan ketika melaksanakan deklarasi konstanta.
Jika Anda menulis suatu rumus excel , misal:
=A1*2
Maka angka 2 pada rumus tersebut ialah suatu konstanta yang tetap , berlawanan dengan nilai A1 , yang mana dinilainya dpat kita ubah sesuai dengan nilai yang kita inputkan pada sel A1.
Loh bang , kan kita bisa ubah angka 2 dengan angka yang lainnya? Ya benar , tetapi maksud tidak sanggup kita ubah disini bukan menyerupai itu. Makara setelah kita menentukan nilai 2 pada rumus tersebut maka nilai 2 itulah yang dipakai dalam rumus excel. Sedangkan tanpa merubah rumusnya kita sanggup merubah nilai A1. Saya percaya anda cukup pintar untuk menangkap pesan yang ingin saya sampaikan.
Pada VBA Excel , untuk mendeklarasikan suatu konstanta mengikuti suatu sintaksis atau cara penulisan tertentu. Berikut klarifikasi lebih lanjutnya.
Cara Mendeklarasikan Konstanta
Konstanta pada VBA Excel ini ada 2 jenis:
- Konstanta Intrinsik , ialah konstanta yang sudah ditawarkan oleh VBA (Visual Basic For Application). Cirinya diawali dengan kata vb atau xl dibagian permulaan konstanta , misal: vbYesNo dan xlDialogOpen. Mengenai konstanta default (Intrinsik) ini akan kita diskusikan pada halaman lain ketika sudah diperlukan.
- Konstanta Simbolik yakni konstanta yang nilainya diputuskan oleh user (Anda) dengan memakai keyword atau keyword "Const". Jenis konstanta VBA inilah yang dimaksudkan dalam pembahasan dihalaman ini.
Konstanta dibikin atau di deklarasikan dengan keyword Const dengan scope level minimal yakni pada scope level Module. Tentang scope ini akan kita diskusikan lebih rincian nanti dibagian bawah.
Syntax deklarasi konstanta yakni selaku berikut:
scope CONST Nama_Konstanta AS DataType = Nilai_Konstanta
Keterangan:
- Elemen Scope bisa anda isi dengan Public atau Private sesuai scope yang anda butuhkan. Jika Elemen ini tidak anda sertakan maka VBA akan menilai Konstanta dideklarasikan selaku scope Public.
- CONST ialah keyword yang memperlihatkan bahwa anda sedang mendeklarasikan konstanta pada module atau prosedure VBA yang sedang anda buat
- Nama_Konstanta yakni nama yang ingin anda gunakan untuk konstanta dimaksud untuk membedakan konstanta satu dengan yang lainnya.
- DataType ialah jenis atau tipe data yang ingin anda pakai dalam konstanta tersebut sebagaimana yang sudah diterangkan pada tutorial sebelumnya.
- Nilai_Konstanta yakni nilai yang ingin anda berikan untuk konstanta tersebut , pastinya mesti sesuai dengan tipe data yang Anda tentukan.
Contoh Deklarasi Konstanta
Berikut contoh sederhana penulisan suatu deklarasi konstanta:
Public Const Penulis As String = "Kang IM"Private Const NamaBlog As String = "Kelas Excel"
Untuk ketika ini saya kira tidak perlu memperpanjang pembahasan mengenai Konstanta pada VBA. Pada pecahan selanjutnya Anda akan saya ajak untuk mengenal dan mencar ilmu lebih jauh mengenai Variabel VBA.
Variable VBA Excel
Variabel pada VBA Excel ialah pecahan yang saya anggap sungguh penting untuk Anda kuasai. Sebab.... alasannya yakni apa ya? pokoknya penting lah. Hahahaha. Silahkan anda definisikan sendiri pentingnya mempelajari pengertian dan cara memakai Variabel VBA ini setelah anda selesai membaca dan mempraktekkan tutorial dasar VBA ini.
Apa sih Variabel VBA itu?
Variabel yakni nama lokasi memori yang dipakai untuk menyimpan atau mewakili nilai tertentu yang sanggup diubah selama sanksi arahan VBA.
Pada dasarnya Variabel sama menyerupai konstanta yang memiliki nama dan tipe data tertentu , bedanya ketika arahan berlangsung nilai konstanta tidak sanggup diubah sedangkan variabel nilainya sanggup diubah untuk memanipulasi data.
Jadi kalau konstanta cuma bisa untuk dibaca atau diambil nilainya (Read) , Variabel selain bisa untuk diambil nilainya juga bisa di tulis atau diubah nilai yang tersimpan didalamnya (Read and Write).
Dari pengertian di atas sanggup kita sederhanakan bahwa variabel memiliki 3 karakteristik berikut:
- Memiliki nama tertentu.
- Marupakan lokasi penyimpanan nilai atau data di dalam memori komputer.
- Digunakan oleh suatu program.
Dari ketiga karakteristik utama dari variabel di atas saya kira sanggup anda jadikan contoh mengenai apa yang perlu Anda ketahui setelah selesai membaca tutorial mengenai Variabel VBA pada pecahan ini agar Anda bisa mendeklarasikan variabel dengan sempurna pada ketika menuliskan kode-kode Macro VBA Excel , yakni:
- Bagaimana Anda menentukan cara penyimpanan nilai atau data. Pembahasan mengenai hal ini terkait bersahabat mengenai bagaimana Anda menentukan VBA datatype (Tipe data) yang anda pakai serta bagaimana cara mendefinisikan atau mendeklarasikan suatu variabel.
- Bagaimana Anda memberi nama variabel VBA.
- Bagaimana Anda menentukan dimana suatu Variabel sanggup dipakai atau diakses. Pembahasan hal ini terkait bersahabat dengan Scope (Ruanglingkup) dan Lifetime of Variables (Umur Variabel).
Sebelum membahas mengenai Konstanta dan Variabel Pada VBA Excel ini , saya apalagi dahulu menentukan untuk membahas Tipe Data VBA pada postingan tutorial VBA Dasar sebelumnya. Sehingga kali ini saya tidak perlu mengulangnya lagi.
Manfaat Mendeklarasikan Variabel VBA
Sebenarnya Anda bisa saja menyusun arahan kesibukan VBA tanpa melaksanakan deklarasi Variabel. Hanya saja menyerupai yang sudah kita ulas pada seri sebelumnya bahwa dengan Mendeklarasikan variabel secara explicit maka arahan macro VBA yang kita buat akan berlangsung lebih singkat serta lebih efisien dalam penggunaan memori.
Beberapa argumentasi atau faedah lain kenapa Anda mesti melaksanakan deklarasi variabel yakni selaku berikut:
- Memungkinkan anda untuk memakai fitur AutoComplete untuk menyingkir dari kesalahan penulisan nama variabel ketika melaksanakan pemanggilan atau bermaksud memakai variabel tertentu.
- Membuat VBA melaksanakan investigasi error atau kesalahan tambahan. Misal anda mendeklarasikan suatu variabel selaku integer lantaran bermaksud mengisi value atau nilai variabel tersebut dengan suatu angka , tetapi Anda mengisinya dengan suatu teks tanpa sengaja. Jika terjadi hal demikian maka VBA akan memperlihatkan pemberitahuan kesalahan bahwa anda memasukkan nilai yang tidak cocok pada variabel tersebut.
- Mendeklarasikan variabel akan memajukan Readability atau tingkat keterbacaan suatu kode. Hal ini memunculkan proses Debug menjadi lebih gampang dan meminimalisir resiko kesalahan atau error tertentu.
Inilah argumentasi kenapa Anda mesti mengaktifkan pilihan "Option Explicit" menyerupai yang sudah disampaikan pada seri pertama tutorial VBA ini. Statemen Option Explicit yang Anda gunakan pada setiap permulaan suatu modul akan memaksa anda untuk senantiasa mendefinisikan atau melaksanakan deklarasi Variabel.
Hal lain yang saya kira cukup berharga yakni bahwa dengan memakai statemen Option Explicit ini , Visual Basic Editor secara otomatis mengoreksi ejaan nama variabel VBA yang anda buat.
Cara Mendeklarasikan Variabel VBA
Sekarang , bagaimana cara melaksanakan deklarasi variabel? Syntax untuk mendeklarasikan Variabel VBA yakni selaku berikut:
Keyword Nama_Variabel As Tipe_Data
Keterangan:
- "Keyword" yakni salah satu dari statemen berikut: Dim , Public , Private atau Static.
- "Nama_Variabel" yakni nama yang ingin Anda gunakan selaku pengenal variabel.
- "Tipe_Data" yakni rujukan ke tipe data dari variabel. Meskipun Elemen ini opsional atau boleh tidak dipakai , saya sarankan Anda untuk selalau menggunakannya , kecuali Anda betul-betul gundah Tipe Data apa yang mesti anda pakai pada variable yang anda deklarasikan.
Contoh deklarasi Variabel VBA yakni selaku berikut:
Dim nomor_urut As LongDim nomor_kode As String
Kode di atas bermaksud mendeklarasikan 2 buah Variabel dengan nama nomor_urut dan nomor_kode. Variabel nomor_urut kita pastikan memakai tipe data Long , sedangkan nomor_kode kita pastikan selaku String atau teks.
Agar baris penulisan arahan lebih ringkas , Anda sanggup juga memakai 1 keyword Dim untuk mendeklarasikan beberapa variabel sekaligus dengan memisahkan antar variabel mengunakan koma( ,). Contohnya adlaah selaku berikut:
Dim nomor_urut As Long , nomor_kode As String
Dulu (bahkan hingga kini juga sih) saya sering meringkas penulisan arahan deklarasi variabel semisal berikut:
Dim nomor_A , nomor_B As Integer
Dengan maksud mendeklarasikan vaiabel nomor_A dan nomor_B selaku nilai Integer.
Perlu Anda ketahui bahwa pada penulisan statement deklarasi variable seperti ini , VBA cuma menentukan Variabel nomor_B selaku Integer , sedangkan untuk variabel nomor_A lantaran tipe data tidak disebutkan maka akan dianggap selaku Variant selaku tipe data devault pada VBA.
Jadi , penulisan arahan deklarasi yang sempurna semestinya yakni selaku berikut:
Dim nomor_A As Integer , nomor_B As Integer
Aturan Menamai Variabel VBA
Pada dasarnya anda bebas menamai suatu variabel. Namun akan lebih baik kalau nama tersebut sekaligus merefleksikan nilai atau isi dari variabel tersebut. Misalnya gunakan akronim tipe data kemudian disambung dengan Nama yang menggambarkan nilai variabel tersebut.
Berikut beberapa akronim yang biasa dipakai selaku prefix atau awalan nama Variabel:
Data Type | Prefix | Alternatif |
---|---|---|
String | str | - |
Boolean | bln | b |
Double | dbl | d |
Integer | int | i |
Long | lng | l |
Single | sng | s |
Date/Time | dt | - |
Currency | cur | c |
Object | obj | - |
Variant | var | v |
Type (User-Defined) | typ | u |
Contoh Nama Variabel:
- Untuk menamai variabel nomor urut dengan tipe Integer pakailah nama: intNoUrut , int_No_Urut atau int_NoUrut.
- Untuk Variabel yang menyimpan nama orang umpamanya gunakan nama str_Nama atau s_Nama yang mana str atau sadalah akronim dari tipe data String.
Selain itu ada beberapa aturan khusus yang mesti Anda patuhi ketika menentukan nama suatu Variabel:
- Menggunakan karakter selaku karakter pertama. Karakter selanjutnya bisa berupa karakter , angka , dan beberapa karakter tanda baca umpamanya underscore (_).
- Nama variabel dilarang melampaui 255 karakter.
- Nama variabel VBA dilarang mengandung spasi () , periode/titik (.) , Operator matematika (misalnya + , - , / , ^ atau *) , operator perbandingan (seperti = , < atau >) atau karakter tanda baca tertentu (seperti jenis-deklarasi karakter @ , # , $ ,% , & dan !).
- Nama variabel VBA tidak sanggup sama dengan keyword atau ungkapan apa pun sudah ada atau dipakai secara default oleh metode VBA Excel. Misalnya: Sub , Dim , With , End , Next , For dan lain sebagainya.
- Visual Basic for Applications tidak membedakan antara karakter besar dan karakter kecil. Misalnya , "A" sama dengan "a".
- Nama setiap variabel VBA yang dipakai mesti unik dalam scope yang relevan. Artinya nama variabel tingkat mekanisme mesti unik dalam mekanisme yang berkaitan , nama variabel level modul mesti unik dalam modulnya , dan seterusnya.
Cara Memasukkan Nilai ke Dalam Variabel VBA
Setelah mendeklarasikan Variabel , bagaimana cara memasukkan nilai ke dalam variebel tersebut?
Jika Anda membaca tutorial ini secara urut dari seri pertama , saya percaya anda sudah faham bahwa intinya tipe variabel itu ada 2 macam. Yakni variabel ber-datatype object dan non object. Untuk masing-masing tipe ini cara memasukkan nilainya berbeda:
Variabel ber-datatype selain object caranya yakni dengan menuliskan nama variabel kemudian dibarengi tanda sama dengan (=) dan nilai dari variabel tersebut.
Nama_Variabel = Ekspresi_Nilai_Variabel
Contoh:
Dim nomor_urut As Long , nomor_kode As Stringnomor_urut = 123nomor_kode = "A123"
Untuk Variabel ber-datatype selain object caranya yakni dengan memakai keyword "Set" dibarengi nama variabel , kemudian dibarengi tanda sama dengan (=) dan nilai dari variabel tersebut.
Set Nama_Variabel = Ekspresi_Nilai_Variabel
Contoh:
Dim range_Data As RangeSet range_Data = Sheets("Sheet1").Range("A1")
Nah , gampang bukan? untuk sementara cukup ini dahulu mengenai bagaimana cara memasukkan nilai ke dalam suatu variabel. Contoh-contoh yang lain akan diterangkan pada bagian-bagian klarifikasi lain. Yang perlu Anda catat , Tambahkan keyword/statement SET kalau data pada variabel tersebut yakni berupa object VBA.
Keyword Dim , Static , Public dan Private Pada Deklarasi Variabel VBA
Seperti yang sudah diterangkan di atas , Statemen atau keyword yang dapat dipakai untuk mendeklarasikan suatu variabel yakni selaku berikut , pastinya masing-masing memiliki tujuan tertentu:
- Dim
- Static
- Public
- Private
Dari keempat keyword tersebut , Statement DIM yakni yang paling biasa digunakan. Sedangkan 3 keyword selanjutnya dipakai untuk mendeklarasikan variabel dengan karakteristik khusus yang menyangkut ruang lingkup (scope) atau masa pakainya (lifetime).
Lalu apa maksud dari masing-masing statement atau keyword di atas?
Bagian ini memang agak susah diterangkan , jadi kalau Anda merasa kebingungan untuk memahaminya saya rasa wajar. Hal ini lebih disebabkan kekurangan kesanggupan saya dalam menerangkan dan bukan lantaran tingkat kecerdasan Anda. Soo , silahkan ambil nafas panjang apalagi dahulu.
Perbedaan utama antara variabel VBA yang dideklarasikan memakai Statement Dim dan Static yakni kapan variabel tersebut direset atau dibuang dari memori. Hal ini menyangkut mengenai lifetime menyerupai yang sudah saya singgung di pecahan atas.
Sebagai aturan biasa ketika suatu variabel dideklarasikan dengan keyword Dim , semua variabel tingkat-prosedur direset ulang ketika mekanisme yang berkaitan berakhir. Sedangkan Variabel static tidak demikain (tidak direset/dibuang).
Adapun Statement Public dan Private lebih kokoh kepada scoope atau ruang lingkup dari suatu variabel. Scoope disini tujuannya yakni pecahan mana dari suatu project VBA sanggup memakai atau mengakses variabel tersebut. Apakah cuma pada mekanisme tertentu , semua mekanisme dalam suatu module atau juga sanggup dipakai oleh mekanisme lain walaupun berlawanan module.
Tentang scope ini sudah sedikit saya singgung pada seri tutorial VBA Dasar sebelumnya , silahkan dibaca apalagi dahulu kalau Anda belum sempat membacanya:Gambaran Umum Scope.
Jika sudah anda baca , saya kira pecahan ini akan lebih gampang diterangkan dengan menciptakan suatu file latihan. Makara silahkan buat suatu file gres kemudian simpan dengan nama file "Kelas Excel-Latihan VBA 3.xlsm" pada folder yang sudah kita siapkan sebelumnya. Jangan lupa pilih ekstensi .xlsm yang mendukung format macro VBA Excel.
Bentar , saya tak nyeduh kopi dulu.
Menentukan Scoope Variable VBA
Pada pecahan sebelumnya sudah diterangkan bahwa Scope variabel VBA yakni mengacu pada ungkapan mengenai modul dan mekanisme mana yang sanggup memakai suatu variabel. Dengan kata lain , Scope menentukan di mana variabel itu sanggup dipakai pada suatu project VBA.
Pada seri yang kemudian sudah diterangkan suatu workbook Excel sanggup memiliki beberapa modul dan pada setiap modul sanggup diisi dengan beberapa mekanisme VBA.
Pada suatu aplikasi VBA yang sederhana , Anda mungkin cukup memakai satu modul dengan beberapa prosedur. Namun , dengan bertambahnya waktu bisa jadi pekerjaan Anda dengan VBA mulai menjadi lebih kompleks dan memerlukan banyak module serta prosedure VBA.
Pada permasalahan yang lebih kompleks , barangkali Anda tak ingin semua variabel VBA sanggup diakses oleh setiap modul dan prosedur. Makara beberapa variabel tertentu cuma boleh dipakai oleh prosedure tertentu baik pada module yang serupa atau prosedure pada modul yang lain.
Penentuan ruang lingkup atau scope variabel VBA secara sempurna akan memungkinkan Anda untuk melaksanakan hal semacam ini.
Jika pada bahasan prosedure dan module saya menyinggung ada 4 level scope , untuk bahasan kali ini akan dicontohkan 3 saja yakni:
- Procedure-Level atau Local VBA Variable
- Module-Level atau Private VBA Variable
- Project-Level atau Public VBA Variable
*Semoga saya tidak salah memakai istilahnya. Jika memang kurang sempurna Silahkan dikoreksi dengan membandingkannya dengan tutorial sejenis pada web atau buku mengenai VBA.
Scope Procedure-Level atau Local VBA
Seperti yang ditunjukkan oleh namanya , variabel tingkat mekanisme atau variabel lokal cuma sanggup dipakai dalam mekanisme di mana suatu variable dideklarasikan. Hal ini berlaku untuk mekanisme jenis Sub atau Function.
Cara melaksanakan deklarasi variabel untuk scope level mekanisme ini biasanya yakni sempurna dibawah deklarasi atau statement prosedur. Dengan cara seperti ini anda sanggup memakai nama yang serupa untuk beberapa variabel pada mekanisme yang berbeda.
File "Kelas Excel-Latihan VBA 3.xlsm" tadi sudah dibikin kan? Okey , selanjutnya silahkan dicicipi kopi dan cemmilannya.
Berikutnya silahkan kerjakan latihan berikut:
- Pada file yang sudah kita buat tadi buatlah suatu module dengan nama "Module1".
- Pada Module1 ini tuliskan arahan VBA berikut ini:
Option ExplicitSub Latihan_Lokal_Variabel1()Dim int_Angka1 As IntegerDim int_Angka2 As Integerint_Angka1 = 5int_Angka2 = int_Angka1 + 10MsgBox "Nilai Variabel int_Angka1 adalah: " & int_Angka1 & Chr(10) & _ "Nilai Variabel int_Angka2 adalah: " & int_Angka2End SubSub Latihan_Lokal_Variabel2()Dim int_Angka1 As IntegerDim int_Angka2 As Integerint_Angka1 = 10int_Angka2 = int_Angka1 * 2MsgBox "Nilai Variabel int_Angka1 adalah: " & int_Angka1 & Chr(10) & _ "Nilai Variabel int_Angka2 adalah: " & int_Angka2End Sub
- Jalankan masing-masing mekanisme di atas.
* Pastikan seebelum dan setelah penulisan karakter & ada spasinya.
Pada Module1 tersebut kita menciptakan 2 buah Prosedur dengan nama Latihan_Lokal_Variabel1 dan Latihan_Lokal_Variabel2. Pada masing-masing mekanisme ini kita mendeklarasikan 2 buah Variabel dengan nama int_Angka1 dan int_Angka2.
Saat dilakukan mekanisme pertama menciptakan kotak pesan selaku berikut:

Sedangkan mekanisme kedua memperlihatkan kotak pesan yang berlawanan selaku berikut:

Hal ini memperlihatkan bahwa masing-masing variabel berlangsung secara setempat pada prosedure terkait dan secepatnya dihapus nilainya ketika mekanisme berakhir.
Selanjutnya silahkan tambahkan suatu prosedure lain berikut ini pada Module1 dibawah kedua mekanisme tadi:
Sub Latihan_Lokal_Variabel3()MsgBox "Nilai Variabel int_Angka1 adalah: " & int_Angka1 & Chr(10) & _ "Nilai Variabel int_Angka2 adalah: " & int_Angka2End Sub
Selanjutnya , silahkan lakukan mekanisme Latihan_Lokal_Variabel3. Apa yang terjadi?

Gambar di atas menujukkan bahwa Latihan_Lokal_Variabel3 tidak memedulikan Variabel int_Angka1 dan int_Angka2 , alasannya yakni Variabel int_Angka1 dan int_Angka1 yang sudah anda deklarasikan sebelumnya cuma tersedia untuk prosedure terkait dimana Variabel tersebut dideklarasikan.
Selanjutnya silahkan hapus statement "Option Explicit" Pada pecahan atas Module1 , kemudian lakukan masing-masing prosedure pada module tersebut secara bergantian.
Meskipun arahan tidak error intinya , VBA mendeklarasikan int_Angka1 dan int_Angka2 secara Implicit. Yang bermakna bahwa tipe data yang dipakai untuk kedua variabel pada mekanisme Latihan_Lokal_Variabel3 yakni Variant. Selain itu nilai kedua Variabel pada mekanisme ini masih kosong , alasannya yakni kita memng belum memasukkan nilai apapun pada kedua Variabel VBA ini.
Dari sini Anda sudah sanggup mengambil pengertian mengenai Variabel dalam Scope Level Procedur atau Local VBA kan? Intinya Sebuah Variabel yang cuma bisa dipakai pada Prosedur terkait dan tidak dapat diundang untuk Prosedur lainnya.
Lalu bagaimana kalau Anda mengharapkan VBA sanggup mengakses suatu Variabel dari prosedure lain?
Scope Module-Level atau Private VBA
Jika pada Scope level Prosedure suatu Variabel cuma bisa dipakai oleh mekanisme terkait , pada variabel scope level-modul , suatu Variabel tersedia juga untuk dipakai dalam mekanisme lain asal masih dalam modul yang serupa di mana variabel VBA tersebut dideklarasikan.
Untuk lebih memahaminya silahkan buat suatu module gres dengan nama "Module2" pada file yang sama. Pada module tersebut tuliskan arahan VBA berikut:
Option ExplicitDim str_Teks As StringDim int_Angka As IntegerSub Latihan_LevelModule_Variabel1()str_Teks = "Belajar VBA Excel Dasar"int_Angka = 1439MsgBox "Latihan_LevelModule_Variabel1" & Chr(10) & Chr(10) & _ "Nilai Variabel str_Teks adalah: " & str_Teks & Chr(10) & _ "Nilai Variabel int_Angka adalah: " & int_AngkaEnd SubSub Latihan_LevelModule_Variabel2()str_Teks = "www."int_Angka = 2018MsgBox "Latihan_LevelModule_Variabel2" & Chr(10) & Chr(10) & _ "Nilai Variabel str_Teks adalah: " & str_Teks & Chr(10) & _ "Nilai Variabel int_Angka adalah: " & int_AngkaEnd SubSub Latihan_LevelModule_Variabel3()MsgBox "Latihan_LevelModule_Variabel3" & Chr(10) & Chr(10) & _ "Nilai Variabel str_Teks adalah: " & str_Teks & Chr(10) & _ "Nilai Variabel int_Angka adalah: " & int_AngkaEnd Sub
Jika sudah , selanjutnya silahkan lakukan masing-masing prosedure di atas secara bergantian dengan urutan selaku berikut. Sebelumnya tekan tombol reset pada suguhan VBE untuk menegaskan semua Variabel sudah di reset ulang:
- Latihan_LevelModule_Variabel3
- Latihan_LevelModule_Variabel1 kemudian Latihan_LevelModule_Variabel3
- Latihan_LevelModule_Variabel2 kemudian Latihan_LevelModule_Variabel3

Dari latihan ini anda dapat peroleh bahwa dengan melaksanakan deklarasi Variabel pada permulaan baris deklarasi atau sebelum mendeklarasikan mekanisme , tepatnya dibawah statement "Option Explicit" , maka Variabel tersebut memliki scope level module.
Artinya Variabel VBA tersebut bisa diketahui oleh semua mekanisme dalam module yang serupa dan tidak terjadi error menyerupai pada contoh latihan sebelumnya pada pecahan Scope Procedure-Level atau Local VBA.
Pada contoh deklarasi diatas , untuk mendapat scope level module selain mendeklarasikan dengan keyword Dim Anda juga sanggup mendeklarasikan Variabel tersebut dengan statement Private. Sehingga kode:
Dim str_Teks As StringDim int_Angka As Integer
Bisa juga anda tulis dengan
Private str_Teks As StringPrivate int_Angka As Integer
Oke , sudah bisa mengerti variabel scope modul ya?
Sekarang buat 1 Modul lagi dengan nama "Module3". Kemudian tuliskan arahan Macro VBA Excel berikut pad modul tersebut:
Option ExplicitSub Latihan_LevelPublic_Variabel()MsgBox "Latihan_LevelModule_Variabel3" & Chr(10) & Chr(10) & _ "Nilai Variabel str_Teks adalah: " & str_Teks & Chr(10) & _ "Nilai Variabel int_Angka adalah: " & int_AngkaEnd Sub
Kemudian coba lakukan mekanisme Latihan_LevelPublic_Variabel ini.
Error ya? Soo bagaimana cara biar kita bisa memakai suatu Variabel lintas Modul? Kita teruskan pembahasan pada pecahan selanjutnya.
Scope Project-Level atau Public VBA
Sampai tahap ini Anda sudah bisa memakai Variabel pada level mekanisme dan Modul. Sekarang kita akan teruskan untuk menciptakan suatu Variabel Level Project dimana scope levelnya lebih luas kalau dibandingkan 2 scope sebelumnya.
Untuk mendeklarasikan variabel VBA pada scope Public , deklarasinya mesti menyanggupi persyaratan berikut:
- Deklarasikan variabel tersebut menyerupai deklarasi tingkat modul yang dituliskan pada permulaan modul diluar semua prosedur.
- Gunakan Statement Public selaku pengganti Statament Dim.
- Deklarasi variabel mesti dibikin dalam modul VBA standar.
Variabel VBA yang deklarasinya menyanggupi ketentuan di atas tersedia untuk mekanisme apa pun , bahkan dalam modul berlawanan dalam Workbook Excel yang sama.
Oke kini kita praktekkan ya?
Silahkan buka Module2 kemudian ubah keyword Dim atau Private kalau sudah Anda ubah pada deklarasi variabel str_Teks dan int_Angka dengan statemen Public. sehingga pada module2 tersebut deklarasi kedua variabel tersebut menjadi:
Public str_Teks As StringPublic int_Angka As Integer
Nah kini , coba buka Module3 kemudian lakukan prosedur Latihan_LevelPublic_Variabel.
Sekarang tidak error lagi bukan? Hanya saja nilai masing-masing variabel masih kosong , alasannya yakni kita memang belum memasukkan nilai pada masing-masing variabel tersebut.
Selanjutnya coba lakukan mekanisme Latihan_LevelModule_Variabel1 atau Latihan_LevelModule_Variabel2 pada Module2 untuk memperlihatkan nilai pada kedua variabel kemudian lakukan lagi prosedur Latihan_LevelPublic_Variabel pada module3.
Sampai disini anda sudah mengerti mengenai bagaimana mengendalikan scope atau ruang lingkup suatu variabel.
Yang perlu Anda catat sebaiknya gunakan scope yang sesempit mungkin , kalau cuma butuh untuk level Prosedure maka atur variabel untuk level prosedure saja. Jika suatu variabel juga diperlukan pada level Module saja , maka jangan di atur untuk lebih luas hingga pada scope Public/Project.
Barangkali anda mengajukan pertanyaan , loch kog setelah prosedure selsai nilai variabel tadi masih tersimpan dan tidak hilang dari memori?
Pertanyaan ini ada kaitannya dengan ungkapan Lifetime pada VBA. Jika sudah , mari kita teruskan pembahasan.
Memmahami Lifetime Variable VBA
Istilah "lifetime" atau seringkali disebut "life" saja mengacu pada berapa usang suatu variabel disimpan dalam memori komputer.
Pada dasarnya Scope suatu variabel , selain kokoh kepada dimana variabel tersebut sanggup di jalan masuk atau dipakai , tetapi juga mensugesti kondisi di mana variabel dihapus atau tidak dari memori.
Secara biasa ada 2 aturan dasar mengenai hal ini:
- Variabel VBA tingkat mekanisme yang dinyatakan dengan pernyataan Dim dihapus atau direset dari memori ketika mekanisme tersebut selesai (End Sub).
- Tingkat mekanisme Variabel static , variabel tingkat modul , dan variabel public menjaga nilainya antara panggilan mekanisme (Tidak dihapus/direset).
Agar lebih terang Lakukan kegiatan berikut:
- Buat suatu modul gres dengan nama "Module4" pada file yang sudah kita buat sebelumnya tadi.
- Buat suatu mekanisme public dengan nama "TestVarabelStatic".
- Didalam prosedure tadi deklarasikan 2 buah variabel , masing-masing dengan nama int_Var1 dan int_Var2. Gunakan keyword Dim untuk int_Var1 dan keyword static untuk int_Var2.
- Setelah mendeklarasikan kedua variabel tadi , isi nilai masing-masing nilai dengan menjumlahkan variabel tersebut dengan angka 5.
- Selanjutnya kita tes nilai masing-masing variabel dengan memanggilnya pada suatu message box dengan arahan berikut:
MsgBox "Nilai Variabel int_Var1 adalah: " & int_Var1 & Chr(10) & _"Nilai Variabel int_Var2 adalah: " & int_Var2
- Akhiri prosedure tersebut dengan statement epilog "End Sub"
Apabila tindakan yang anda jalankan benar maka arahan yang Anda buat pada Module1 akan terlihat menyerupai ini:
Option ExplicitPublic Sub TestVariabelStatic()Dim int_Var1 As IntegerStatic int_Var2 As Integerint_Var1 = int_Var1 + 5int_Var2 = int_Var2 + 5MsgBox "Nilai Variabel int_Var1 adalah: " & int_Var1 & Chr(10) & _ "Nilai Variabel int_Var2 adalah: " & int_Var2End Sub
Setelah selesai silahkan coba lakukan mekanisme tersebut.
Pada ketika dilakukan pertama kali terlihat bahwa nilai dari Variabel int_Var1 dan int_Var2 yakni 5. Seperti terlihat pada kotak pesan berikut:

Selanjutnya , silahkan lakukan lagi prosedure tersebut dan lihat hasilnya.
Pada ketika dilakukan kedua kali ternyata nilai Variabel int_Var1 tetap 5 sedangkan nilai int_Var2 menjadi 10 dan terus berganti bertambah 5 ketika dilakukan ulang. Kenapa demikian?

Hal ini disebabkan Variabel int_Var2 kita deklarasikan selaku Static , sehingga pada selesai prosedure nilai 5 dari Variabel int_Var2 tetap tersimpan di dalam memori. Saat Anda melakukan prosedure tersebut untuk kedua kalinya maka nilai tersebut disertakan dengan angka 5 sesuai nilai yang diberikan pada int_Var2 tersebut (int_Var2 = int_Var2 + 5).
Silahkan coba melakukan prosedur TestVarabelStatic berulang kali dan amati nilai yang dihasilkan.
Lalu bagaimana untuk mereset nilai Static tadi? Untuk contoh permasalahan ini gunakan tombol suguhan reset pada VBE menyerupai yang sudah diterangkan sebelumnya.
Dari contoh permasalahan sederhana di atas , saya percaya anda sudah mendapat citra mengenai maksud dari lifetime yang saya singgung di atas.
Selain dipakai pada Variabel. Keyword atau statement Static dapat juga dipakai pada level mekanisme , hal ini akan memunculkan semua Variabel didalam prosedure tersebut memiliki lifetime yang lebih usang atau tidak secepatnya di hapus ketika selesai prosedur.
Pada module4 di bawah selesai prosedure tadi tambahkan script atau arahan VBA berikut:
Public Static Sub TestProsedureStatic()Dim int_Var1 As IntegerDim int_Var2 As Integerint_Var1 = int_Var1 + 5int_Var2 = int_Var2 + 5MsgBox "Nilai Variabel int_Var1 adalah: " & int_Var1 & Chr(10) & _ "Nilai Variabel int_Var2 adalah: " & int_Var2End Sub
Kemudian silahkan coba lakukan prosedure "TestProsedureStatic" ini beberapa kali. Apa yang terjadi? Ternyata walaupun tidak kita deklarasikan selaku Static , Variabel int_Var1 dan int_Var2 pada mekanisme ini diperlakukan layaknya suatu variabel static bukan?
Baiklah , pembahasan mengenai Konstanta dan Variabel VBA pada seri tutorial VBA ini saya kira sudah cukup panjang dan melelahkan. Untuk itu saya sudahi dulu.
Untuk melengkapi pembahasan kali ini silahkan download File latihan di bawah ini :
LINK DOWNLOAD TERKUNCI.
Silahkan SHARE untuk membuka kunci!
Semoga berharga dan memperbesar semangat mencar ilmu VBA Anda. Jangan lupa di Share kalau ada keuntungannya , sehingga kawan-kawan lain juga ikut mencicipi manfaatnya. Sampai jumpa pada seri berikutnya. Salam Kelas Excel.
Tidak ada komentar untuk "Mengenal Konstanta Dan Variabel Pada Vba Excel #05 | Kelas Excel"
Posting Komentar