Anda di halaman 1dari 24

Apa itu Macro dan Apa itu VBA?

Macro
Sebenarnya adalah sebuah script pada sebuah aplikasi (tidak hanya excel/office tapi juga
aplikasi-aplikasi lainnya) untuk membuat otomatisasi. Script tersebut, akan memerintahkan
aplikasi untuk melakukan pekerjaan yang sama secara berulang-ulang.
Selanjutnya, macro tak hanya menjalankan script, tapi juga dapat merekam kegiatan keyboard
dan mouse. Alhasil, pengguna aplikasi tersebut, cukup melakukan pekerjaan satu kali saja,
merekamnya dan aplikasi akan menuliskan scriptnya. Selanjutnya, pengguna cukup
menjalankan script tersebut untuk melakukan pekerjaan yang sama.
VBA
Visual Basic for Application adalah turunan dari bahasa pemrograman Visual Basic milik
Microsoft. Namun berbeda dengan Visual Basic yang digunakan untuk membuat sebuah
aplikasi stand alone (berdiri sendiri), maka VBA didesain untuk bekerja diatas sebuah aplikasi.
Gampangnya, VBA memang didesain untuk menumpang pada sebuah inang. VBA tidak
membuat EXE. VBA hanya bisa dijalankan diatas inang tersebut.
Lalu, apa inangnya?
Inangnya adalah aplikasi-aplikasi yang membeli VBA dari Microsoft. Dan contoh inang dari VBA
adalah MS Office yang salah satu aplikasinya adalah MS Excel.
Macro + VBA pada MS Office
Jadi, MS Office yang salah satu produknya adalah Excel, memiliki Macro untuk proses
otomatisasi.
Dan Macro pada MS Office, menggunakan VBA. Alhasil, sintaks dan routin script macro pada
Excel, sama persis dengan VB.
Karenanya, jika anda pengguna bahasa pemrograman VB, maka anda tak akan kesulitan
dengan Macro Excel.
Dan jika anda sudah familiar dengan Macro Excel, akan mudah untuk belajar VB.

Mengenal Data Type


Apa itu Data Type?
Sebenarnya, biar gampang mengenal Data Type, kita sebaiknya kenal dulu apa itu variable.
Karena sesungguhnya, data type itu dibutuhkan karena adanya variable.
Tapi masalahnya, kita belum akan membahas variable disini, so agar kita mengerti tentang data
type, sebaiknya kita ulas dikiiiit aja tentang variable.

Variable
Variable itu seperti sebuah wadah. Sebut aja Baskom. Nah, baskom ini bisa kita isi benda,
misalkan beras. Setiap saat, kita bisa mengisi sejumlah beras ke dalam baskom, dan setiap saat,
kita juga bisa mengambilnya lagi.

Variable dan Data Type


Sekarang apa hubungannya variable dan data type?
Oke, kita kembali lagi ke baskom yah. Tadi, kita baru ngomongin satu benda, beras. Gimana
kalo ternyata kita juga butuh tepung, air, susu, santan, kacang dll. Kalo jenis bendanya ada
banyak, maka kita butuh lebih banyak baskom. Karena, benda-benda tadi gak bisa kita jadiin
satu. Misal, tepung dicampur dengan air, wah bisa jadi bakwan donk..
Jadi, yang harus kita lakukan adalah, menyediakan lebih banyak baskom. Selanjutnya, baskom
itu kita beri label. Misal, baskom beras, baskom susu, dll. Selanjutnya, kita harus
memasukkan/mengambil benda-benda ke baskom sesuai dengan label.

Jadi, apa itu data type?


Jadi data type itu seperti halnya jenis-jenis benda pada pengandaian kita tadi. Kalo tadi ada
beras, tepung, susu dll, maka data type ada Integer, String, Single, Double, Long, dll.

Dan ketika kita sudah memberi label pada sebuah variabel (melakukan deklarasi) dengan
menentukan jenis data type yang boleh masuk ke variable tersebut, maka data type lainnya
tidak boleh dimasukkan ke variable tersebut.

Kenapa jenis data harus dibeda-bedakan antara satu variable dengan variable yang lain?
Seperti pengandaian tadi, misal tepung digabung sama air, bisa jadi bakwan kan? Nah, begitu
pula alasan kenapa ada data type. Selain meminimalisasi error, juga untuk efisiensi penggunaan
penyimpanan.
Misal begini, kita punya benda duren. Kalo bendanya itu duren, maka baskom yang dibutuhkan
adalah baskom besar. Karena wujud duren itu emang besar. Tapi untuk baskom beras, gak perlu
besar-besar.
Dan tentu gak akan efisien kalo kita menggunakan baskom duren untuk menyimpan beras.
Jadi, kita butuh Data Type yang berbeda-beda sesuai kebutuhan.

Apa saja jenis-jenis Data Type?


Oke, berikut adalah jenis-jenis Data Type pada VBA berikut penjelasannya:

Data Type

Range

Byte

0 s/d 255

Besar
Penyimpanan
1 byte

Data type ini berupa angka dari0 s/d 255. Tiapangka, akandikodekan dalam
binary sebesar1 byte (8 bit). Misal, angka 1 yang kita beri labelData Type Byte, akan
dikodekandalam 8 bit menjadi 00000001.
Sedangkan255 dikodekan menjadi11111111.
Boolan

True or False

2 byte

Data type ini hanya memiliki 2 datayaitu "True" dan "False". Disimpan sebagai Integer 16bit (2

byte).
"True" = 1 dalam binerInteger, dan "false" = -1 dalambiner Integer. Bagaimana Integer
disimpan dalambiner dapat dilihat pada bagianData Type Integer dibawah.
Integer

-32768 s/d 32767

2 byte

Data type ini dikodekan dalam biner dengan meggunakan sistem "Two's Complement".
Klik disini untuk penjelasan lengkapnya.
Long
(long integer)

-2147483648 s/d 2147483647

4 byte

Seperti pada data type Integer, namun 2 kali lebih besar kapasitasnya.
Single
(single

-3.402823E38 s/d -1.401298E-45 untuk nilai negatif

precision

dan 1.401298E-45 s/d 3.402823E38.untuk nilai positif

4 byte

floating-point)
Jika Integer hanya menampung bilangan bulat, maka Data Type Single dapat menampung
bilangan pecahan. Data Type Single dikodekan dalam biner dengan menggunakan Standar
IEEE 754 Binary32.
Silahkan klik disini untuk penjelasan lengkapnya.
Double

-1.79769313486231E308 s/d -4.94065645841247E-324 untuk

(double

nilai negatif;

precision

4.94065645841247E-324 s/d 1.79769313486232E308

floating-point)

untuk nilai postif

8 byte

Sama dengan Data Type single namun 2 kali lebih besar. Pengkodeannya
menggunakan Standar IEEE 754 Binary64.
Klik disini untuk penjelasan lengkap.
Currency
(scaled
integer)

-922,337,203,685,477.5808 s/d 922,337,203,685,477.5807

8 bytes

Jika ada tertulis 24002500, maka untuk Data Type Currency akan dianggap sebagai
2400.2500. Jadi, 4 angka terakhir akan otomatis dianggap angka dibelakang koma. Currency
disimpan ke dalam binary dalam format integer seperti pada data type integer.
+/-79,228,162,514,264, 337,593,543,950,335
tanpa titik desimal;
Decimal

+/-7.9228162514264337593543950335

14 bytes

dengan 28 letak titik desimal; angka non-zero terkecil +/0.0000000000000000000000000001


Data type Desimal memiliki struktut binary : 1 bit untuk tanda + (plus) atau - (minus) yang
membutuhkan 1 byte tempat penyimpanan, + 96 bit data integer dengan maksimum
sampai 79,228,162,514,264,337,593,543,950,335 yang membutuhkan 12 byte + 1 byte lagi
untuk menentukan titik desimal. Dari 0 s/d 28.
Misal, angka -2 maka binarynya adalah 00000001 + 0000 ... 0010 (12 byte) + 00000000. Jika
1.4, maka 00000000 + 0000 ... 1110 + 00000001.
Byte terakhir (00000001) yang desimalnya : 1, artinya koma ada di posisi ke 1.
Date

January 1, 100 to December 31, 9999

8 bytes

Dikodekan dengan standar IEEE binary64.


Object

Any Objectreference

String
(variable-

0 to approximately 2 billion

length)
String
(fixed-length)

1 to approximately 65,400

4 bytes

10 bytes +
string length

Length of
string

String di kodekan dalam biner dengan menggunakan kode ASCI dan UTF-16.
Variant

Any numeric value up to the range of a Double

16 bytes

(with
numbers)
Variant
(with

Same range as for variable-length String

characters)

22 bytes +
string length

Data Type Variant adalah data type yang menampung semua jenis data type.

User-defined

The range of each element is the same as the range

(usingType)

of its data type.

Number
required by
elements

Mengenal Excel Visual Basic Editor


Apa itu Visual Basic Editor? Bagaimana menulis program di VB Editor? Bagaimana
memunculkan message box dialog?
Selain itu, tutorial ini juga akan memberikan contoh cara menambahkan Macro pada Button Controls
Form.
Sebelum melanjutkan tutorial ini, sebaiknya anda telah membaca tutorial pada link "Baca dulu" di atas.
Bagaimana jika tidak membaca tutorial diatas?
Maka, kami tidak akan bertanggung-jawab kalau anda muntah-muntah karena pusing.
Oke, kita anggap, semua sudah membaca tutorial diatas. Dan tutorial ini akan kami bagi menjadi
beberapa segmen:
1. Tentang Visual Basic Editor
2. Object Sheet, Object Workbook dan Object Module
3. Menulis Baris Program
4. Menjalankan Baris Program dengan Button Controls Form
5. Inilah hasilnya
Mari kita mulai dari yang pertama:
1. Tentang Visual Basic Editor
Untuk menuliskan baris program pada VBA Excel, kita membutuhkan Visual Basic Editor (VB Editor). Lalu
dimana VB Editor tersebut?
Untuk membuka VB Editor, Klik TAB "Developer" --> Klik "Menu Visual Basic". Lihat gambar
dibawah:

Jika anda tidak menemukan Tab Developer, maka anda harus memunculkannya terlebih dahulu. Dan
jika belum tahu caranya, berarti anda belum baca tutorial pada link "Baca dulu" di atas. Ayo! Baca dulu..
Jika anda sudah meng-klik Menu Visual Basic, maka akan muncul Window VB Editor seperti gambar
berikut:

Di dalamnya terdapat Project Explorer dan Properties Explorer.


Lalu di mana tempat kita menulis Program!!!??
Tenang.. Program akan ditulis di Code Editor. Karena kita belum menulis baris program sebelumnya,
maka tidak akan muncul Code Editor-nya. Yang ada hanya VB Editor kosong tanpa Code Editor.
Dan di hal ini akan dibahas pada segmen berikutnya.
2. Object Sheet, Object Workbook, Object Form dan Object Module

Nah, anggap saja, kita akan menulis Program VBA untuk pertama kali. Karena itu, kita harus
membuka code editor yang akan menjadi tempat menuliskan baris program kita.
Code Editor, bisa berada di Object Sheet, Object Workbook, Object Form atau juga Object Module.
Apa itu semua???
Waduh, berarti belum pernah denger OOP ya? Kalo belum, baca penjelasan singkat berikut ya..
VBA berasal dari Visual Basic (VB) yang merupakan bahasa pemrograman berbasis OOP (Object Oriented
Programming).
Gampangnya, cara memahami VBA adalah seperti memahami suatu object sehari-hari. Contoh yang
paling mudah misalkan Kucing. Ya, Kucing adalah object seperti halnya meja, pohon, bahkan kita
(manusia) juga object.
Kembali ke contoh object Kucing.
Ada banyak spesies Kucing, salah satunya adalah kucing anggora. Nah anggap aja, sekarang ada kucing
anggora bernama MANISE.
Seperti pada umumnya, kucing MANISE ini bisa bersuara "Meong" atau kita sebut mengeong. Selain itu,
kucing MANISE juga bisa tidur, makan, dan sebagainya.
Kucing MANISE juga memiliki warna yang bermacam-macam. Bentuk tubuh, panjang ekor yang juga
bermacam-macam.
Selain itu, saat kita elus kepalanya, kucing tersebut juga akan menjadi manja.
Jadi.. Kalo kita hubungkan Kucing dengan VBA, maka Kucing adalah Object.
Kucing bisa mengeong, tidur, makan dan aktifitas lainnya maka pada Object VBA aktifitas itu disebut
METHOD.
Kucing memiliki warna yang bermacam-macam, panjang ekor yang bermacam dan lain-lain, maka pada
Object VBA karakteristik itu disebut PROPERTIES.
Kucing juga jadi bersikap manja saat kita elus, maka pada Object VBA perilaku itu disebut BEHAVIOR
(EVENT).
Jadi, sebuah Object pada VBA akan memiliki Method, Properties dan Event.
Oke, itu dulu tentang OOP. Sekarang kita lanjut ke Object Module..
Apa itu Module?
Module adalah salah satu object VBA. Berbeda dengan Object Worksheet yang nampak di MS Excel,
Module hanya berisi Code Editor saja. Dan di Code Editor pada Module inilah kita akan menulis baris
program.
Secara Default, Module belum muncul. Untuk memunculkannya, pada VB Editor lakukan, klik kanan -> pilih Insert --> Pilih Module.

Maka akan muncul Module. Ingat, Module adalah Object yang hanya berisi Code Editor saja. Lihat
gambar dibawah.

Apakah kita harus selalu menulis baris Program pada Module?


Selain menulis di object module, kita dapat pula menulis baris program pada masing-masing Code Editor
yang ada pada object Sheet dan object Worksheet.
Dan untuk membuat Object Sheet baru, kita cukup menambah worksheet pada Workspace Excel. Secara
otomatis, object sheet akan muncul di Visual Basic Editor.
Untuk memunculkan Code Editor pada Object Sheet cukup Klik dua kali pada salah satu object sheet
pada project Explorer (di VB Editor).

Selain itu, dari Excel, kita juga bisa membuka Code Editor dengan Klik Kanan pada Tab Sheet --> Pilih
View Code.

Akan muncul code editor berikut:

3. Menulis Program
Untuk permulaan, kita akan mencoba menulis program yang sangat sederhana. Kita akan memunculkan
sebuah window pop-up!
Lihat gambar dibawah:

Semua baris program, harus berada di dalam antara Sub "nama" () dan End Sub. Dan ini kita sebut
sebagai prosedur.
Setiap prosedur harus kita beri nama. Pada gambar diatas, nama prosedur adalah: Pesan. Jadi baris
programnya adalah sebegai berikut:
Sub Pesan ()
MsgBox "Halo, ini VBA Code pertama saya!"
End Sub
MsgBox adalah fungsi untuk memunculkan window pop-up.
Dah, selesai baris program kita.
4. Menjalankan Baris Program dengan Button Controls Form
Setelah kita membuat prosedur, maka langkah berikutnya adalah memanggilnya.
Sekarang, coba buat sebuah Button Controls Form. Silahkan baca tutorial tentang ini pada link
"Baca dulu".

Setelah membuat Button Controls Form (ingat, gunakan Button yang Controls Form), maka akan
muncul window yang meminta kita untuk menyematkan sebuah macro pada Button yang telah kita
buat. Yang dimaksud dengan macro ini adalah prosedur yang sebelumnya telah kita buat.
Dan.. Ternyata, prosedur yang tadi telah kita buat ada disana. Kita cukup pilih Prosedur (Macro) Pesan
dan klik OK.

5. Inilah hasilnya
Kalau semua sudah OK, sekarang coba klik di cell sembarang agar Button yang baru saja kita buat tidak
ter-pilih.
Ciri-ciri Button sedang ter-pilih adalah, muncul titik-titik disekeliling Button. Dan saat kita tidak sedang
memilihnya, titik-titik itu hilang. Lihat gambar dibawah:

Dan, jika button tidak sedang terpilih, saat kursor kita berada di atas button, maka kursor kita akan
berubah menjadi gambar Jari. Lihat gambar dibawah.

Dan sekarang, silahkan Klik.

Daaan... Yup.. Akan muncul window seperti dibawah.

Selamat! Anda baru saja membuat sebuah program VBA..!

Mengenal Statement
Sip..! Kita mulai dari pertanyaan, apa itu Statement di VBA Excel?
Statement di VBA adalah rangkaian kata-kata yang bisa dipahami oleh VBA agar VBA melakukan sesuatu
sesuai keinginan kita. Agar bisa dipahami oleh VBA, kata-kata itu harus mengikuti aturan.
Anggap aja kita sedang bermain kode dengan teman kita. Sebelumnya, kita sudah punya kesepakatan
urutan-urutan cara menulis kode. Agar bisa dipahami teman kita, maka kode yang kita tulis harus sesuai
aturan yang kita sepakati. Dan kali ini, teman kita adalah VBA.
So, say hi to VBA.. Hi...!

Apa saja jenis-jenis Statement dalam VBA?


Statement VBA, bisa kita pilah-pilah menjadi 3 jenis. Agar program kita bisa digunakan, maka kita harus
menggunakan semua statement-statement ini. Jadi, pembagian ini hanya untuk mempermudah
pemahaman kita saja. OK..

Nah berikut statement-stemanet itu:


1. Declaration Statement
2. Assignment Statement
3. Executeable Statement
Dan kita akan bahas satu-satu berikut contoh-contohnya, so terus dibaca yah..

1. Declaration Statement
Sesuai namanya, Declaration (Deklarasi), statement ini digunakan untuk mendeklarasikan procedure,
variable, array dan constant.
Woi, apaan semua itu?
Tenang, kita akan mempelajarinya di tutorial lainnya. Jadi, untuk saat ini, kita cukup tahu namanya dulu.
Oke..
Kita coba pahami maksud kata, mendeklarasikan. Maksudnya mendeklarasikan disini adalah,
mengumumkan kepada VBA, bahwa kita telah membuat procedure, variable, array dan constant.
Artinya, VBA tidak boleh mengijinkan, jika ada yang menggunakan nama yang sama.
Di dalam deklarasi inilah kita menentukan jenis dan scope item yang kita deklarasikan.
Analoginya seperti ini:
Saya punya usaha yang saya beri nama Bebek Ngarasan. Agar orang-orang tidak menggunakan nama
yang sama untuk usaha mereka, maka saya mendeklarasikan ini ke pemerintah.
Dalam deklarasi saya ini, saya menyebutkan jenis usaha saya yaitu rumah makan. Sehingga, orang yang
akan datang ke tempat usaha saya, bukan orang-orang yang mau menjahitkan pakaian, atau cabut gigi,
tapi orang yang lapar dan ingin makan.
Selain jenis usaha, saya juga harus menyebutkan scope (cakupan) usaha saya. Apakah nama saya ini
berlaku untuk di kota ini saja, ataukan se provinsi saja, atau dalam negara ini saja, atau bahkan seluruh
dunia? Jika saya cuma pilih di kota ini saja, maka orang lain boleh membuat nama yang sama di kota
lain.
Kita liat contohnya ya..

Sub ContohProc()
Const Jumlahmobil As Integer
Dim Namakaryawan As String
' Statement-statement lainnya
End Sub

Ada tiga deklarasi statement pada contoh di atas yaitu:

- Deklarasi Procedure. Dideklarasikan menggunakan Sub() dan End Sub.


- Deklarasi Constant. Dideklarasikan dengan Const
- Deklarasi Variable. Dideklarasikan dengan Dim.
Untuk detil masing-masing item, akan dibahas di tutorial terpisah.

2. Assignment Statement
Statement ini, digunakan untuk menugaskan sebuah nilai
ataupun expresions pada Variable dan Constant.
Analogi lagi yah:
Saya sudah mendeklarasikan usaha rumah makan Bebek Ngarasan. Nah, selanjutnya yang harus saya
lakukan adalah mengisi rumah makan saya dengan kelengkapan. Baik barang-barang, karyawan juga
peraturan.
Disini juga sama. Variabel dan Constant yang telah kita deklarasikan harus kita beri tugas (diisi).
Statement untuk mengisi/menugaskannya disebut Assignment Statement.
Contoh yah:

Sub ContohProc()
Dim Namakaryawan As string
Const Jumlahmobil as integer
Namakaryawan = "ngarasan"
Jumlahmobil = 1
End Sub

Contoh di atas, saya memasukkan nilai string: ngarasan pada variable Namakaryawan. Dan selanjutnya
memasukkan nilai integer: 1 pada constantJumlahmobil.

3. Executeable Statement
Kalo statement yang ini, statement yang digunakan agar VBA melakukan suatu aksi. Statement golongan
ini, dapat mengeksekusi sebuah method atau functiondan juga melakukan loop
(pengulangan) dan branch (percabangan) misal menggunakan If.

Oke, cara nelaahnya, kalo stement-stement sebelumnya bersifat pasif, hanya untuk persiapan, maka di
statement inilah hasil-hasil persiapan sebelumnya di eksekusi. Statement ini sangat banyak dan
bervariasi. Mulai dari Loop menggunakan berbagai macam jenis, misal For .. Next, While, dll.
Percabangan menggunakan If,Case of, dsb. Dan, di statement inilah sebuah method dan function di
exsekusi.
Apa itu method dan function, lihat tutorial berikutnya.
Ini adalah contoh Executable Statement , hmm sebenernya semua statement ada disini:

Sub ApplyFormat()
Const limit As Integer = 33
For Each c In Worksheets("Sheet1").Range("MyRange").Cells
If c.Value > limit Then
With c.Font
.Bold = True
.Italic = True
End With
End If
Next c
MsgBox "All done!"
End Sub

Contoh di atas, ada Deklarasi statement --> Sub() .. end sub, dan const.

Sub ApplyFormat()
Const limit As Integer = 33
End Sub

Selain itu juga ada assignment statement --> digabung dengan deklarasi constant.

Const limit As Integer = 33

Dan ada Executable Statement:

For Each c In Worksheets("Sheet1").Range("MyRange").Cells


If c.Value > limit Then
With c.Font
.Bold = True
.Italic = True
End With
End If
Next c
MsgBox "All done!"

Mengenal tentang Procedure


Emangnya, apa sih Procedure itu?

Oke, kita mulai dengan tahu dulu, baru tempe eh, maksudku, kita mulai dari tahu
dulu apa itu Procedure.

Pake analogi aja yah, biar gampang. Bayangin sebuah Pabrik Motor. Mereknya
terserah, mo honda, yamaha, toyota eh gak ada dink merek toyota. Pokoknya
mereknya apa aja.
Sebuah pabrik motor, gak semua bagian motor itu dibuat sendiri dipabrik
tersebut. Sering kali, beberapa bagiannya di -sub kan ke pabrik lain. Misalkan
bagian ban. Ban tidak dibuat dipabrik motor, tapi di buat oleh pabrik Ban. Bisa
juga bagian softbraker. Bagian ini juga dikerjakan oleh pabrik lainnya lagi.
Jadi, ternyata sebuah motor yang kita beli itu, gak semua bagiannya di buat di
pabrik pembuat motor. Tapi banyak yang di -sub kan ke pabrik lainnya.

Nah, Procedure itu persis seperti pabrik yang ngerjain Ban, pabrik yang ngerjain
softbraker dan seterusnya.
Jadi, sebuah procedure akan menunggu perintah dan juga inputan dari procedure
lain, kemudian mengerjakan perintah tersebut sesuai dengan inputan yang
diberikan. Dan kalau sudah selesai dikerjakan, hasilnya dikembalikan ke
procedure yang memerintahkannya.

Setidaknya, ada dua jenis Procedure yaitu:


1. Sub Procedure
2. Function Procedure

(Sebenernya ada 1 lagi jenis procedure yaitu Properties Procedure. Ta pi yang ini
ntar-ntar aja deh..)

Apa bedanya?

Tenang, ini juga mau dijelasin.

Sub Procedure

Sub procedure itu berisi baris program untuk mengolah sesuatu. Bila baris
program selesai dilakukan, maka procedure ini akan berhenti dan menutup. Dan
Program dikembalikan ke program utama.
Oke, sekarang kita pakai analogi pabrik tempe yah. Kan sering tuh makan tempe.
Proses pembuatan tempe itu disederhanakan sebagai berikut:
1. Mulai pengerjaan
2. Kedelai dicuci bersih.
3. Kedelai dikupas kulitnya.
4. Kedelai direbus.
5. Kedelai diragi
6. Kedelai dibungkus.

7. Selesai

Jadi...

No. 1, program utama dimulai.


Saat sampai ke No.2, program utama memanggil sub procedure: pencucian
kedelai. Jika kedelai sudah bersih, dikembalikan ke program utama.
Kemudian, saat sampai ke No.3, program utama memanggil sub procedure:
pengupasan kulit. Jika kulit sudah terkelupas, dikembalikan ke program utama.
Dan seterusnya sampai selesai.
Begitulah cara kerja Sub Procedure.

Function Procedure

Jika sub procedure cuma menjalankan p rogram, maka function procedure


melakukan kalkulasi dan mengeluarkan hasil untuk dipakai program utama.
Kita masuk lagi ke analogi pembuatan tempe. Ternyata, agar tempe dapat ter ragi dengan sukses, maka harus menghitung besarnya kantong, banyaknya
kedelai, dan banyaknya ragi. Jadi, kalo ada 10 kg kedelai, trus kantong plastiknya
1/4 kg-an, berapa jumlah ragi yang dibutuhkan?
Nah, agar pembuatan tempe-nya sukses, maka pada proses di atas, harus
ditambahkan sebuah function procedure. Jadinya adalah sebagai b erikut:
1. Mulai pengerjaan
2. Kedelai dicuci bersih.
3. Kedelai dikupas kulitnya.
4. Kedelai direbus.
5. Hitung jumlah ragi yang dibutuhkan umtuk 10 kg kedelai dan plastik 1/4 kgan.
6. Kedelai diragi
7. Kedelai dibungkus.

8. Selesai

No.1 sampai No.4 masih sama seperti sebelumnya. Tapi setelah sub
procedure: perebusan selesai , dan program dikembalikan ke program utama,
maka program utama akan memanggil function procedure: penghitungan ragi .
Inputan-nya adalah: kedelai 10 kg dan plastiknya 1/4 kg-an .
Function procedure kemudian akan menghitung dan memberikan hasil ke
program utama. Misalkan hasilnya adalah 10 gram ragi. Hasil dari function ini
bisa digunakan oleh procedure-procedure lainnya.
Kemudian, program utama akan memanggil sub procedure berikutn ya hingga
selesai.

Wah, tambah pusing..! Ada contoh pogramnya gak?

Oke, sekarang kita coba buat sebuah sub procedure ya. Semakin banyak latihan,
semakin cepet pinter kan..

Pada gambar di atas, kita buat 2 sub procedure. (programutama dan testsubproc).

Sebenernya, dua-duanya adalah sub procedure, tapi untuk mempermudah


gambaran, kita anggap yang pertama adalah program utama dan yang kedua sub
procedure. Sesungguhnya, program utama itu ya Excel itu sendiri.
Oke pertama, kita buat program utama (anggap aja ini program utama ya, meski
sebenernya sama-sama sub procedure).
Didalam program utama, kita memanggil sub procedure: testsubproc. Cara
manggilnya gampang, cukup tulis namanya saja.

Sub programutama()
'didalam program utama, kita akan pang gil sub procedure testsubproc
testsubproc
End Sub

Sekedar info, tanda petik satu ('), menunjukkan kalimat setelah tanda ini adalah sekedar
keterangan saja. Dan VBA tidak akan memprosesnya sebagai baris program.

Nah, selenjutnya kita buat sub procedure testsubproc.

Sub testsubproc()
'sub procedure ini berisi sebuah perintah untuk menampikkan pesan.
MsgBox "halo..! saya lagi belajar VBA"
End Sub

Sekedar info lagi yah, perintah MsgBox sebenarnya adalah sebuah function loh. Tapi ini
internal function, atau function yang udah built-in (dibuat) oleh Excel. Kita tinggal manggil aja.
Sekarang kita coba RUN program utama kita. Letakkan cursor pada programutama dan
klik RUN seperti pada gambar dibawah.

Hasilnya adalah, akan muncul pesan seperti pada gambar berikut:

Sub Procedure kita SUKSES!!


Trus, gimana cara bikin Function Procedure?
Oke, sekarang kita coba buat sebuah function. Seperti pada sub procedure, kita akan pura-pura memiliki
program utama (yang sebenernya adalah sebuah sub procedure juga. Ingat, program utama
sesungguhnya adalah program Excel itu sendiri).
Biar gampang, kita tetap pakai code sebelumnya dan cukup kita tambah memanggil function
procedure. Oke..
Function procedure kita adalah Penjumlahan. Berikut code function-nya:
Function penjumlahan(input1 As Integer, input2 As Integer) As Integer
'baris program di function untuk menjumlahkan dua variabel

penjumlahan = input1 + input2


End Function

Apa yang dilakukan code diatas adalah:


Function penjumlahan meminta inputan yang nantinya akan dimasukkan ke dalam variable
input1 dan input2. Kedua variabel memiliki datatype integer. Hasil dari function ini tersimpan
dalam variable penjumlahan dengan datatype yang juga integer. Selanjutnya, didalam
function, kita tulis sebuah formula perhitungan dari variabel-variabel tadi (penjumlahan = input1
+ input2).
Jadi, jika kita memanggil function penjumlahan dengan memberikan data inputan yang diminta,
function akan memasukkan ke dalam variabel dan menghitungnya sesuai formula dan
mengeluarkan hasilnya untuk pemanggil (program utama misalnya).
Oke, function sudah beres, sekarang waktunya memanggilnya di program utama. Ingat, kita masih
memakai program utama sebelumnya dengan menambahkan pemanggilan function.
Sub programutama()
'didalam program utama, kita akan panggil sub procedure testsubproc
testsubproc
'memanggil function procedure penjumlahan dan menampilkan hasilnya ke message box.
'input penjumlahannya adalah 2 dan 5. Hasilnya seharusnya 7.
MsgBox "ini hasil function : " & penjumlahan(2, 5)
End Sub

Pada program utama, function dipanggil bersamaan dengan perintah memunculkan pesan (perintah
MsgBox). Data yang kita input adalah 2 dan 5.

Nah, jika kita RUN program utama kita (ingat, letakkan cursor pada program utama), maka akan muncul
pesan seperti gambar dibawah. Hasil dari inputan 2 dan 5 adalah 7!

SUKSES LAGI!!!