Sub Procedure Pada Vba Excel #06 | Kelas Excel
Tutorial lengkap wacana Sub Procedure pada VBA Excel , Elemen penyusun Sub Procedure serta latihan menciptakan mekanisme sub selaku salah satu jenis mekanisme pada VBA yang dipakai untuk melaksanakan kiprah atau langkah-langkah agresi tertentu

Pada pembahasan perihal module dan procedure sudah sedikit kami singgung bahwa procedure pada VBA ada 3 jenis: Sub , Function dan Property. Pada seri bimbingan VBA Excel kali ini kita akan berguru lebih jauh wacana jenis Prosedur Sub.
Pengertian Sub Procedure Pada VBA Excel
Sub Procedure ialah salah satu jenis procedure pada VBA. Istilah Sub pada jenis procedure VBA ini merujuk pada ungkapan Subroutines yang secara biasa sanggup di artikan selaku suatu set arahan yang dirancang untuk melaksanakan operasi atau langkah-langkah agresi tertentu pada suatu agenda komputer.
Sub procedure pada VBA Excel yaitu sekumpulan kode VBA yang ditandai dengan statement pembuka Sub dan diakhiri dengan Statement End Sub. Sub procedure akan melaksanakan suatu agresi , langkah-langkah atau kiprah tertentu sesuai kode agenda yang diberikan diantara statement Sub dan End Sub , tetapi tidak mengembalikan atau menciptakan suatu nilai tertentu (return value/return result).
Return Value atau nilai simpulan inilah perbedaan utama antara Jenis Sub Procedure dengan Function Procedure pada VBA Excel. Function Procedure sanggup mengembalikan atau menciptakan suatu nilai tertentu sedangkan Sub Procedure tidak. Tentang Function Procedure akan dibahas pada seri selanjutnya.
Jika suatu sub procedure dijalankan maka kode-kode agenda di dalamnya akan dijalankan dari permulaan hingga didapatkan statement End Sub/Exit Sub.
Cara Membuat Sub Procedure
Sintax atau cara penulisan dalam menciptakan suatu sub procedure kurang lebihnya selaku berikut:
[Private|Public|Friend] [Static] Sub Nama_Prosedur ([List_Argumen])[Instruksi/Kode Program][Exit Sub][Instruksi/Kode Program]End SubSetiap unsur Sub Procedure yang ada di dalam kurung siku "[...]" bersifat opsional , artinya boleh dipakai dan boleh diabaikan atau tidak ditulis. Jika anda pernah menyaksikan suatu mekanisme sub pada suatu modul VBA , mungkin pemulisannya memakai cara sederhana menyerupai ini:
Sub Nama_Prosedur ()'Instruksi/Kode Program'Instruksi/Kode Program'Dst.End SubContoh sederhana suatu Sub Procedure yaitu selaku berikut:
Sub copyNilai()' Copy Nilai C2 ke A1Sheet1.Range("A1") = Sheet1.Range("C2")' Copy Nilai D6 ke A2Sheet1.Range("A2") = Sheet1.Range("D6")End SubKeterangan:
- Sub : Menunjukkan jenis Prosedure
- copyNilai : Menunjukkan nama prosedur.
- Baris kode teks "Copy Nilai C2 ke A1" dan "Copy Nilai D6 ke A2" yang di awali dengan tanda petik (') ialah keterangan/komentar dan tidak memiliki arti apa-apa.
- Sheet1.Range("A1") = Sheet1.Range("C2") ialah baris kode yang berisi perintah untuk mengisi nilai Sel A1 pada Sheet1 dengan nilai Sel C2 pada Sheet1
- Sheet1.Range("A2") = Sheet1.Range("D6") ialah baris kode menyerupai sebelumnya yang sanggup juga diartikan perintah untuk mengcopy nilai sel D6 ke sel A2 pada Sheet1.
- End Sub : Baris kode selaku statemen epilog Sub Procedure yang memamerkan simpulan dari mekanisme copyNilai.
Selanjutnya akan coba diterangkan masing-masing unsur penyusun suatu Sub Procedure pada VBA Excel.
Elemen [Private|Public|Friend]
Keyword Private , Public dan Friend mengendalikan tingkat saluran atau scope dari mekanisme terkait.
- Private : Menyatakan bahwa Sub procedure hanya sanggup diakses/dipanggil oleh procedure di modul yang sama dimana procedure tersebut ditulis
- Public : Menyatakan bahwa Sub procedure dapat diakses/dipanggil oleh setiap procedure di semua modul.
- Friend : Keyword ini dipakai pada Class module. Untuk dikala ini kita abaikan dulu.
Ketiga keyword yang juga sering disebut selaku access modifiers di atas bersifat opsional. Jika pada pengerjaan atau dikala deklarasi sub procedure tidak anda pakai salah satunya , maka VBA Excel akan memakai keyword Default yaitu Public. Artinya mekanisme yang anda buat sanggup diundang dari semua modul yang ada.
Tentang Scope ini sudah banyak kita singgung pada seri sebelumnya , untuk lebih jelasnya akan di contohkan pada kepingan latihan dibawah.
Elemen [Static]
Keyword Static pada deklarasi mekanisme menyatakan bahwa setiap variabel setempat pada suatu Sub procedure akan disimpan atau tidak dibuang dari memori. Jika keyword ini tidak anda pakai maka normalnya variabel akan dikosongkan setelah suatu procedure yang diundang selsai atau selesai dijalankan.
Jika anda sudah membaca penduan sebelumnya wacana Konstanta dan Variabel VBA pastinya anda sudah menemukan citra biasa wacana Static Keyword di atas.
Elemen "Sub"
Teks atau element "Sub" ini wajib anda pakai kalau anda bermaksud menciptakan suatu Sub procedure. Elemen inilah yang menjadi perbedaan utama dalam penyusunan mekanisme sub dengan jenis lainnya.
Elemen "Nama_Prosedur"
Bagian ini memamerkan nama dari mekanisme yang anda buat dan mesti anda gunakan.
Nama mekanisme dipakai selaku penanda untuk membedakan prosedure satu dengan yang yang lain sekaligus menyeleksi bagaimana mekanisme tersebut akan diundang oleh mekanisme lainnya.
Meskipun tidak mempengaruhi apapun dari suatu mekanisme , tetapi sebaiknya gunakan nama yang mewakili tujuan dari keseluruhan mekanisme yang anda buat , sehingga dikala sudah banyak mekanisme yang anda susun anda tidak kesusahan membedakan maksud atau tujuan dari setiap mekanisme yang ada.
Seperti yang sudah diterangkan pada kepingan sebelumnya , nama suatu mekanisme mengikuti beberapa hukum berikut:
- Karakter pertama mesti berupa Letter Abjad (A-Z ,a-z).
- Karakter selanjutnya sanggup berupa aksara , angka atau karakter tanda baca tertentu (tidak semua tanda baca sanggup digunakan).
- Tidak boleh memakai titik (.) Dan spasi ( ) juga tidak sanggup memakai karakter berikut: # , $ ,% , & , @ , ^ , * dan !.
- Tidak ada perbedaan antara aksara besar dan aksara kecil.
- Jumlah maksimum karakter yang sanggup dipakai yaitu 255.
Elemen [List_Argumen]
Bagian ini memamerkan list atau daftar variabel yang mewakili argumen yang mau dipakai pada mekanisme Sub di saat dipanggil. Jika memakai lebih dari satu argumen atau variabel penulisannya dipisahkan oleh koma.
Argumen dalam deklarasi mekanisme ditulis menyerupai deklarasi variabel tanpa menyertakan scope. Penulisan argumen tersebut sanggup disertai statement lain menyerupai ByVal atau ByRef atau Optional , sedangkan pada deklarasi variabel tidak ada.
Scope dari suatu argumen bersifat setempat pada mekanisme tersebut. Artinya , seperti setara dengan variabel yang dideklarasikan dengan Dim dalam mekanisme tersebut. Kaprikornus argumen sanggup menciptakan suatu variabel ber-scope setempat dalam mekanisme yang sanggup menemukan nilai dari luar prosedur.
Tentang Penggunaan List_Argument ini akan kami diskusikan pada seri bimbingan VBA berikutnya. Untuk dikala ini sanggup diabaikan dulu.
Elemen [Instruksi/Kode Program]
Instruksi/Kode Program ialah baris-baris kode perintah yang mau dilaksanakan oleh sub procedure yang dijalankan atau dipanggil. Isinya pastinya menyesuaikan keperluan atau impian anda yang pada pada dasarnya yaitu hal-hal apa saja yang mau dijalankan oleh prosedure terkait dikala berjalan. Misalnya menyembunyikan baris tertentu , menimbulkan notifikasi , menyimpan file dan lain sebagainya.
Elemen [Exit Sub]
Baris kode "Exit Sub" ialah perintah untuk keluar dari Sub Procedure terkait.
"Exit Sub" membuktikan bahwa mekanisme mesti di akhiri dan tidak dilanjutkan ke baris-baris agenda selanjutnya. Dengan kata lain dikala urutan kode hingga pada "Exit sub" maka urutan kode yang dijalankan akan pribadi lompat ke simpulan mekanisme atau "End Sub".
Elemen "End Sub"
Bagian ini menandai akhir suatu Sub Procedure.
Pada dikala menyelesaikan statemen pembuka untuk menciptakan suatu procedure gres umumnya Statement epilog mekanisme sub ini akan otomatis dibentuk pada VBE (Visual Basic Editor).
Latihan Membuat Sub Procedure VBA Excel
Belajar VBA itu tidak afdhol kalau tidak ada prakteknya. Betul?
Pada kepingan ini kita akan berguru mengetahui beberapa ungkapan yang sudah diterangkan di atas. Sekaligus kita juga akan berguru bagimana menyeleksi scope suatu Prosedur Sub VBA.
Sekarang silahkan menciptakan suatu file berekstensi xslm lalu simpan dengan nama "Kelas Excel-Latihan VBA 4" pada folder yang sudah kita buat pada kepingan pertama seri tutorial VBA Dasar ini.
Public Sub Procedure
Pada file yang sudah kita buat tadi buatlah suatu module gres lalu ubah nama modul gres tadi dari "Module1" menjadi "SubProsedure1". Bagaimana caranya? Jika masih kesusahan untuk melaksanakan aktifitas ini dilahkan baca seri sebelumnya.
Selanjutnya apa jika anda mengikuti seri bimbingan VBA Dasar ini dari permulaan , dikala membuka modul "SubProsedure1" secara otomatis pada kepingan atas Module Window akan mucul teks/kode "Option Explicit".
Dibawah kode ini buatlah 2 buah Prosedur Sub , masing-masing dengan nama Latihan11 dan Latihan12 menyerupai dibawah ini:
Public Sub Latihan11()MsgBox "Ini Prosedure Latihan11"End SubSub Latihan12()MsgBox "Ini Prosedure Latihan12"End SubPerbedaan utama dari kedua sub procedure di atas yaitu adanya keyword "Public" pada mekanisme "Latihan11" , sedangkan mekanisme "Latihan12" tidak.
Sekarang silahkan coba laksanakan kedua prosedure tadi. Jika langkah anda benar maka dikala dijalankan , masing-masing mekanisme akan menimbulkan suatu message box/kotak pesan.
Setelah sukses melaksanakan kedua mekanisme Latihan11 dan Latihan12 , selanjutnya silahkan buat lagi 2 mekanisme lain dibawahnya. Masing-masing dengan nama "Latihan13" dan "Latihan14" menyerupai dibawah ini.
Sub Latihan13()Call Latihan11End SubSub Latihan14()Call Latihan12End SubJika sudah , silahkan laksanakan kedua mekanisme ini secara bergantian.
Saat dijalankan , mekanisme "Latihan13" akan mengundang mekanisme "Latihan11" dan menimbulkan kotak pesan berikut:

Sedangkan mekanisme "Latihan14" akan mengundang mekanisme "Latihan12" dan menimbulkan pesan berikut:

Sampai pada tahap ini ternyata dengan memakai keyword Public atau tidak , tidak mempengaruhi saluran suatu mekanisme dikala diundang dari module yang sama. Lalu bagaimana kalau diundang dari modul yang berbeda?
Sekarang silahkan menciptakan satu buah module lagi lalu ubah namanya menjadi "SubProsedure2". Kaprikornus kini kita memiliki 2 buah modul. Pada Module pertama berisi 4 procedure , sedangkan pada Module VBA kedua masing kosong.
Selanjutnya , pada module ke-2 atau modul dengan nama "SubProsedure2" tadi buatlah dua Sub Procedure menyerupai berikut:
Sub Latihan21()Call Latihan11End SubSub Latihan22()Call Latihan12End SubSub prosedure Latihan21 berisi kode yang mengundang mekanisme Latihan11 , sedangkan Sub Procedure Latihan22 berisi kode untuk mengundang mekanisme Latihan12.
Jika sudah anda buat , laksanakan kedua mekanisme Latihan21 dan Latihan22 pada module SubProsedure2 secara bergantian.
Bagaimana hasilnya?
Ya ternyata kedua Sub Procedure Latihan11 dan Latihan12 sanggup juga diundang dari modul lain yang berbeda.
Selanjutnya tuliskan lagi script kode berikut untuk menyertakan suatu mekanisme sub pada modul SubProsedure2 berikut:
Sub Latihan23()Latihan11Latihan12End SubJika sudah selesai menciptakan Sub Prosedure Latihan23 ini silahkan coba dijalankan.
Sekarang pada module SubProsedure1 terdapat 4 mekanisme VBA dengan nama Latihan11 , Latihan12 , Latihan13 dan Latihan14. Sedangkan pada module SubProsedure2 terdapat 3 mekanisme masing-masing dengan nama Latihan21 , Latihan22 , dan Latihan23.
Dari beberapa latihan di atas sanggup ditarik kesimpulan beberapa hal berikut:
- Keyword Public pada statement deklarasi suatu Sub Procedure menyebabkan mekanisme tersebut memiliki scope Project-Level , artinya sanggup diakses/ diundang dari module yang lain bahkan dengan cara yang benar sanggup juga diakses dari Project VBA atau file excel yang lain.
- Jika suatu mekanisme dideklarasikan tanpa menyertakan keyword public atau Private maka akan dianggap memakai keyword public selaku acces modifier default.
- Sebuah Sub Procedure sanggup diundang dari mekanisme lain dengan memakai keyword Call dibarengi nama mekanisme atau pribadi diundang dengan menuliskan nama prosedurnya.
Bagaimana? sudah capek? Jika belum kita teruskan latihan dan pembahasan wacana Sub Procedure VBA Excel ini.
Private Sub Procedure
Setelah mengetahui penggunaan keyword "Public" kini kita akan berlatih menjajal memakai Keyword "Private".
Pada modul VBA "SubProsedure1" tambahkan kode berikut untuk menciptakan 2 Sub Procedure lain:
Private Sub Latihan15()MsgBox "Ini Prosedure Latihan15"End SubSub Latihan16()Latihan15End SubProsedur Latihan15 berisi kode untuk menimbulkan suatu pesan , sedangkan pada mekanisme dengan nama Latihan16 berisi perintah untuk mengundang atau melaksanakan mekanisme "Latihan15".
Semoga cara saya menamai prosedur-prosedur di atas tidak menciptakan anda bingung. Jika iya saya percaya anda cuma membaca saja tanpa praktek menuliskan kode-kode di atas tadi. hehehehe.
Secara bergantian dikala kedua mekanisme ini dijalankan maka seharusnya akan menimbulkan suatu kotak pesan menyerupai ini:

Sekarang kita pindah ke module "SubProsedure2" dan tambahkan Sub mekanisme berikut di bawah mekanisme "Latihan23" yang sudah ada:
Sub Latihan24()Latihan15End SubSaat mekanisme Latihan24 dijalankan untuk mengundang mekanisme Latihan15 ternyata timbul pesan error berikut:

Ya , hal ini disebabkan mekanisme Latihan15 kita deklarasikan selaku Private , sehingga tidak sanggup di panggil dari module lain.
Dari latihan ini sanggup ditarik kesimpulan bahwa mekanisme VBA yang dideklarasikan selaku Private memiliki scope level modul sehingga cuma sanggup diundang oleh mekanisme lain pada modul yang serupa dan tidak sanggup diundang dari modul yang lain.
Static Sub Procedure
Pada seri sebelumnya sudah disinggung bahwa tingkat mekanisme Variabel static menjaga nilainya dikala suatu mekanisme selesai dijalankan (Tidak dihapus/direset).
Jadi keyword "Static" ini mempengaruhi lifetime dari local variable. Bagian ini tidak akan diterangkan lebih jauh lantaran sudah pernah kita diskusikan pada seri yang membahas wacana Konstanta dan variabel VBA.
Untuk latihan kini silahkan menciptakan module gres lagi dan ubah namanya menjadi "SubProsedure3"
Pada modul ini tuliskan kedua script VBA berikut:
Sub Latihan31()Dim int_Variabel1 As Integerint_Variabel1 = int_Variabel1 + 5MsgBox "Nilai Variabel int_Var1 adalah: " & int_Variabel1End SubStatic Sub Latihan32()Dim int_Variabel2 As Integerint_Variabel2 = int_Variabel2 + 5MsgBox "Nilai Variabel int_Var1 adalah: " & int_Variabel2End SubBerikutnya silahkan laksanakan kedua mekanisme ini masing-masing 3x atau lebih. Kemudian amati perbedaannya.
Untuk melengkapi pembahasan kali ini silahkan download File latihan di bawah ini :
LINK DOWNLOAD TERKUNCI.
Silahkan SHARE untuk membuka kunci!
Sekian dahulu pembahasan kita untuk VBA Sub Procedure , Pada seri selanjutnya kita akan berguru lebih rincian wacana cara melaksanakan Sub procedure serta membahas wacana Function Procedure pada VBA Excel.
Jika ada pertanyaan silahkan sampaikan pada kolom komentar yang tersedia dan jangan lupa bagikan laman ini biar makin banyak kawan-kawan lain yang ikut menemukan manfaatnya.
Tidak ada komentar untuk "Sub Procedure Pada Vba Excel #06 | Kelas Excel"
Posting Komentar