SlideShare a Scribd company logo
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 ituData Type?
Sebenarnya,biargampangmengenalDataType,kitasebaiknyakenal duluapaituvariable.Karena
sesungguhnya,datatype itudibutuhkankarenaadanyavariable.
Tapi masalahnya,kitabelumakanmembahasvariable disini,soagarkita mengerti tentangdatatype,
sebaiknyakitaulasdikiiiitajatentangvariable.
Variable
Variable ituseperti sebuahwadah.SebutajaBaskom.Nah,baskomini bisakitaisi benda,misalkan
beras. Setiapsaat,kitabisamengisi sejumlahberaske dalambaskom, dansetiapsaat,kita jugabisa
mengambilnyalagi.
Variabledan DataType
Sekarangapa hubungannyavariable dandatatype?
Oke,kitakembali lagi ke baskomyah.Tadi,kitabarungomonginsatubenda,beras.Gimanakalo
ternyatakitajuga butuhtepung,air,susu,santan,kacangdll.Kalojenisbendanyaadabanyak,makakita
butuhlebihbanyakbaskom.Karena,benda-bendatadi gakbisakitajadiinsatu.Misal,tepungdicampur
denganair,wah bisajadi bakwandonk..
Jadi,yangharus kitalakukanadalah,menyediakanlebihbanyakbaskom.Selanjutnya,baskomitukita
beri label.Misal,baskomberas,baskomsusu,dll.Selanjutnya,kitaharusmemasukkan/mengambil
benda-bendake baskomsesuai denganlabel.
Jadi,apa itu datatype?
Jadi data type ituseperti halnyajenis-jenisbendapadapengandaiankitatadi.Kalotadi adaberas,
tepung,susudll,makadata type ada Integer,String,Single,Double,Long,dll.
Dan ketikakitasudahmemberi label padasebuahvariabel (melakukan deklarasi) denganmenentukan
jenisdatatypeyangbolehmasukke variable tersebut,makadata typelainnyatidakbolehdimasukkan
ke variable tersebut.
Kenapajenisdataharusdibeda-bedakanantarasatuvariable denganvariableyanglain?
Seperti pengandaiantadi,misal tepungdigabungsamaair,bisajadi bakwan kan?Nah,begitupula
alasankenapaada data type.Selainmeminimalisasierror,jugauntukefisiensi penggunaan
penyimpanan.
Misal begini,kitapunyabendaduren.Kalobendanyaituduren,makabaskomyangdibutuhkanadalah
baskombesar.Karenawujudduren ituemangbesar.Tapi untukbaskomberas,gak perlubesar-besar.
Dan tentugak akan efisienkalokitamenggunakanbaskomdurenuntukmenyimpanberas.
Jadi,kitabutuhData Type yangberbeda-bedasesuai kebutuhan.
Apa sajajenis-jenisDataType?
Oke,berikutadalahjenis-jenisDataType padaVBA berikutpenjelasannya:
Data Type Range
Besar
Penyimpanan
Byte 0 s/d 255 1 byte
Data type ini berupa angka dari·0 s/d 255. Tiap·angka, akan·dikodekan dalam binary sebesar·1 byte (8
bit). Misal, angka 1 yang kita beri label·Data Type Byte, akan dikodekan·dalam 8 bit menjadi 00000001.
Sedangkan·255 dikodekan menjadi·11111111.
Boolan True or False 2 byte
Data type ini hanya memiliki 2 data·yaitu "True" dan "False". Disimpan sebagai Integer 16bit (2 byte).
"True" = 1 dalam biner·Integer, dan "false" = -1 dalam·biner Integer. Bagaimana Integer disimpan
dalam·biner dapat dilihat pada bagian·Data 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
precision
floating-point)
-3.402823E38 s/d -1.401298E-45 untuk nilai negatif
dan 1.401298E-45 s/d 3.402823E38.untuk nilai positif
4 byte
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
(double
precision
floating-point)
-1.79769313486231E308 s/d -4.94065645841247E-324 untuk
nilai negatif;
4.94065645841247E-324 s/d 1.79769313486232E308
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.
Decimal
+/-79,228,162,514,264, 337,593,543,950,335
tanpa titik desimal;
+/-7.9228162514264337593543950335
dengan 28 letak titik desimal; angka non-zero terkecil +/-
14 bytes
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 4 bytes
String
(variable-
length)
0 to approximately 2 billion
10 bytes + string
length
String
(fixed-length)
1 to approximately 65,400 Length of string
String di kodekan dalam biner dengan menggunakan kode ASCI dan UTF-16.
Variant
(with numbers)
Any numeric value up to the range of a Double 16 bytes
Variant
(with
characters)
Same range as for variable-length String
22 bytes + string
length
Data Type Variant adalah data type yang menampung semua jenis data type.
User-defined
(usingType)
The range of each element is the same as the range
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?
Selainitu,tutorial ini jugaakan memberikancontohcaramenambahkanMacro pada ButtonControls
Form.
Sebelummelanjutkantutorial ini,sebaiknyaandatelahmembacatutorial padalink"Bacadulu"di atas.
Bagaimana jika tidak membaca tutorial diatas?
Maka, kami tidakakan bertanggung-jawabkalauandamuntah-muntahkarenapusing.
Oke,kitaanggap,semuasudahmembacatutorial diatas.Dan tutorial ini akan kami bagi menjadi
beberapasegmen:
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 yangpertama:
1. Tentang Visual Basic Editor
Untuk menuliskanbarisprogrampadaVBA Excel,kitamembutuhkanVisual BasicEditor(VBEditor).Lalu
dimanaVB Editortersebut?
Untuk membukaVBEditor,Klik TAB "Developer"-->Klik "Menu Visual Basic". Lihat gambar
dibawah:
Jikaanda tidakmenemukan Tab Developer,makaandaharusmemunculkannyaterlebihdahulu.Dan
jikabelumtahucaranya,berarti anda belumbaca tutorial padalink"Baca dulu"di atas.Ayo!Baca dulu..
Jikaanda sudahmeng-klikMenu Visual Basic, maka akan muncul Window VBEditorseperti gambar
berikut:
Di dalamnyaterdapatProjectExplorerdanPropertiesExplorer.
Lalu di mana tempat kita menulis Program!!!??
Tenang..Programakan ditulisdi Code Editor.Karenakitabelummenulisbarisprogramsebelumnya,
maka tidakakan muncul Code Editor-nya.Yangada hanya VB Editor kosong tanpa Code Editor.
Dan di hal ini akandibahaspada segmenberikutnya.
2. Object Sheet, Object Workbook, Object Form dan Object Module
Nah,anggap saja,kitaakan menulisProgramVBA untukpertamakali.Karenaitu,kitaharus
membukacode editor yangakan menjadi tempatmenuliskanbarisprogramkita.
Code Editor,bisaberada di ObjectSheet,ObjectWorkbook,ObjectFormataujugaObjectModule.
Apa itu semua???
Waduh,berarti belumpernahdengerOOPya?Kalobelum, bacapenjelasansingkatberikutya..
VBA berasal dari Visual Basic(VB) yangmerupakanbahasapemrogramanberbasisOOP(ObjectOriented
Programming).
Gampangnya,cara memahami VBA adalahseperti memahamisuatuobjectsehari-hari.Contohyang
palingmudahmisalkanKucing.Ya,Kucingadalahobjectseperti halnyameja,pohon,bahkankita
(manusia) jugaobject.
Kembali ke contohobjectKucing.
Ada banyakspesiesKucing,salahsatunyaadalahkucinganggora.Nahanggapaja, sekarangada kucing
anggora bernamaMANISE.
Seperti padaumumnya,kucingMANISEini bisabersuara"Meong"ataukita sebutmengeong.Selainitu,
kucingMANISEjuga bisatidur,makan,dan sebagainya.
KucingMANISEjuga memiliki warnayang bermacam-macam.Bentuktubuh,panjangekoryangjuga
bermacam-macam.
Selainitu,saatkitaeluskepalanya,kucingtersebutjugaakanmenjadi manja.
Jadi..KalokitahubungkanKucingdenganVBA,makaKucingadalahObject.
Kucingbisamengeong,tidur,makan danaktifitaslainnyamakapadaObjectVBA aktifitasitudisebut
METHOD.
Kucingmemiliki warnayangbermacam-macam, panjangekoryangbermacamdanlain-lain,makapada
ObjectVBA karakteristikitudisebutPROPERTIES.
Kucingjugajadi bersikapmanjasaat kitaelus,makapada ObjectVBA perilakuitudisebutBEHAVIOR
(EVENT).
Jadi,sebuahObjectpadaVBA akan memiliki Method,PropertiesdanEvent.
Oke,itudulutentangOOP.Sekarangkitalanjutke ObjectModule..
Apa itu Module?
Module adalahsalahsatu objectVBA.BerbedadenganObjectWorksheetyangnampakdi MS Excel,
Module hanyaberisi Code Editorsaja.Dan di Code Editorpada Module inilahkitaakanmenulisbaris
program.
Secara Default,Module belummuncul. Untukmemunculkannya,padaVBEditorlakukan, klik kanan --
> pilih Insert --> Pilih Module.
Maka akanmuncul Module.Ingat,Module adalahObjectyanghanyaberisi Code Editorsaja.Lihat
gambar dibawah.
Apakah kita harus selalu menulis baris Program pada Module?
Selainmenulisdi objectmodule,kitadapatpulamenulisbarisprogrampadamasing-masingCode Editor
yang ada padaobjectSheetdanobjectWorksheet.
Dan untukmembuatObjectSheetbaru,kitacukupmenambahworksheetpadaWorkspace Excel.Secara
otomatis,objectsheetakanmuncul di Visual BasicEditor.
Untuk memunculkanCode EditorpadaObjectSheetcukupKlikduakali padasalahsatuobjectsheet
pada projectExplorer(di VBEditor).
Selainitu,dari Excel,kitajugabisamembukaCode EditordenganKlikKananpadaTabSheet -->Pilih
ViewCode.
Akanmuncul code editorberikut:
3. Menulis Program
Untuk permulaan,kitaakanmencobamenulisprogramyangsangatsederhana.Kitaakanmemunculkan
sebuahwindowpop-up!
Lihat gambardibawah:
Semuabarisprogram, harus beradadi dalamantara Sub"nama" () dan End Sub.Dan ini kitasebut
sebagai prosedur.
Setiapprosedurharuskitaberi nama.Pada gambar diatas,namaproseduradalah:Pesan.Jadi baris
programnyaadalahsebegai berikut:
SubPesan()
MsgBox "Halo,ini VBA Code pertamasaya!"
End Sub
MsgBox adalahfungsi untukmemunculkanwindow pop-up.
Dah, selesai barisprogramkita.
4. Menjalankan Baris Program dengan Button Controls Form
Setelahkitamembuatprosedur,makalangkahberikutnyaadalahmemanggilnya.
Sekarang,cobabuat sebuahButtonControlsForm. Silahkan baca tutorial tentang ini pada link
"Baca dulu".
SetelahmembuatButtonControlsForm(ingat,gunakan Button yang Controls Form), maka akan
muncul windowyangmemintakitauntukmenyematkansebuahmacropadaButtonyang telahkita
buat.Yang dimaksuddenganmacroini adalahproseduryangsebelumnyatelahkitabuat.
Dan..Ternyata,proseduryangtadi telahkitabuatada disana.Kitacukup pilihProsedur(Macro) Pesan
dan klikOK.
5. Inilah hasilnya
KalausemuasudahOK,sekarangcoba klikdi cell sembarangagar Buttonyangbaru saja kitabuat tidak
ter-pilih.
Ciri-ciri Buttonsedangter-pilihadalah,muncul titik-titikdisekelilingButton.Dansaat kitatidaksedang
memilihnya,titik-titikituhilang.Lihatgambardibawah:
Dan, jikabuttontidaksedangterpilih,saatkursorkitaberadadi atas button,makakursorkita akan
berubahmenjadi gambarJari.Lihatgambar dibawah.
Dan sekarang,silahkanKlik.
Daaan...Yup.. Akanmuncul windowseperti dibawah.
Selamat!Andabarusaja membuatsebuahprogramVBA..!
Mengenal Statement
Sip..!Kitamulai dari pertanyaan,apaituStatementdi VBA Excel?
Statementdi VBA adalahrangkaiankata-katayangbisadipahami olehVBA agarVBA melakukansesuatu
sesuai keinginankita.Agarbisadipahami olehVBA,kata-kataituharusmengikuti aturan.
Anggapaja kitasedangbermainkode dengantemankita.Sebelumnya,kitasudahpunyakesepakatan
urutan-urutancara menuliskode.Agarbisadipahami temankita,makakode yangkitatulisharussesuai
aturan yangkita sepakati.Dankali ini,temankitaadalahVBA.
So,say hi to VBA..Hi...!
Apa sajajenis-jenisStatementdalamVBA?
StatementVBA,bisakitapilah-pilahmenjadi 3jenis.Agarprogramkitabisadigunakan,makakitaharus
menggunakansemuastatement-statementini.Jadi,pembagianini hanyauntukmempermudah
pemahamankitasaja.OK..
Nah berikutstatement-stemanetitu:
1. DeclarationStatement
2. AssignmentStatement
3. Executeable Statement
Dan kitaakan bahas satu-satuberikutcontoh-contohnya,soterusdibacayah..
1. DeclarationStatement
Sesuai namanya, Declaration(Deklarasi),statementini digunakanuntukmendeklarasikan procedure,
variable,arraydan constant.
Woi,apaan semuaitu?
Tenang,kitaakan mempelajarinyadi tutorial lainnya.Jadi,untuksaatini,kitacukuptahunamanyadulu.
Oke..
Kitacoba pahami maksudkata, mendeklarasikan.Maksudnyamendeklarasikandisini adalah,
mengumumkankepadaVBA,bahwakitatelahmembuat procedure,variable,array danconstant.
Artinya,VBA tidakbolehmengijinkan,jikaadayangmenggunakannamayangsama.
Di dalamdeklarasi inilahkitamenentukan jenisdanscope itemyangkitadeklarasikan.
Analoginyaseperti ini:
Saya punyausahayang saya beri nama BebekNgarasan.Agar orang-orangtidakmenggunakannama
yang samauntukusaha mereka,makasaya mendeklarasikanini ke pemerintah.
Dalamdeklarasi sayaini,sayamenyebutkan jenisusahasayayaiturumahmakan.Sehingga,orangyang
akan datangke tempatusahasaya, bukanorang-orangyangmau menjahitkanpakaian,ataucabutgigi,
tapi orang yang lapardan inginmakan.
Selainjenisusaha,sayajugaharusmenyebutkan scope (cakupan) usahasaya.Apakahnamasayaini
berlakuuntukdi kotaini saja,ataukan se provinsi saja,ataudalamnegara ini saja,atau bahkanseluruh
dunia?Jikasayacuma pilihdi kotaini saja,maka orang lainbolehmembuatnamayangsama di kota
lain.
Kitaliatcontohnyaya..
Sub ContohProc()
Const Jumlahmobil As Integer
Dim Namakaryawan As String
' Statement-statement lainnya
End Sub
Ada tigadeklarasi statementpadacontohdi atas yaitu:
- Deklarasi Procedure.Dideklarasikanmenggunakan Sub() danEndSub.
- Deklarasi Constant.Dideklarasikandengan Const
- Deklarasi Variable.Dideklarasikandengan Dim.
Untuk detil masing-masingitem, akandibahasdi tutorial terpisah.
2. AssignmentStatement
Statementini,digunakanuntukmenugaskansebuahnilai
ataupunexpresions padaVariabledan Constant.
Analogi lagi yah:
Saya sudahmendeklarasikanusaharumahmakanBebekNgarasan.Nah,selanjutnyayangharussaya
lakukanadalahmengisi rumahmakansayadengankelengkapan.Baikbarang-barang,karyawanjuga
peraturan.
Disini jugasama. Variabeldan Constantyangtelahkitadeklarasikanharuskitaberi tugas(diisi).
Statementuntukmengisi/menugaskannyadisebut AssignmentStatement.
Contohyah:
Sub ContohProc()
Dim Namakaryawan As string
Const Jumlahmobil as integer
Namakaryawan = "ngarasan"
Jumlahmobil = 1
End Sub
Contohdi atas, saya memasukkannilai string: ngarasan padavariable Namakaryawan.Danselanjutnya
memasukkannilai integer:1pada constantJumlahmobil.
3. ExecuteableStatement
Kalostatementyangini,statementyangdigunakanagarVBA melakukansuatuaksi.Statementgolongan
ini,dapatmengeksekusi sebuah method ataufunctiondanjugamelakukan loop
(pengulangan)danbranch (percabangan) misal menggunakanIf.
Oke,cara nelaahnya,kalo stement-stementsebelumnyabersifatpasif,hanyauntukpersiapan,makadi
statementinilahhasil-hasil persiapansebelumnyadi eksekusi.Statementini sangatbanyakdan
bervariasi.Mulai dari Loop menggunakanberbagai macamjenis,misal For..Next,While,dll.
Percabanganmenggunakan If,Caseof,dsb.Dan,di statementinilahsebuahmethoddanfunctiondi
exsekusi.
Apa itumethoddanfunction,lihattutorial berikutnya.
Ini adalahcontoh Executable Statement,hmmsebenernyasemuastatementadadisini:
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
Contohdi atas, ada Deklarasi statement -->Sub() ..endsub,danconst.
Sub ApplyFormat()
Const limit As Integer = 33
End Sub
Selainitujugaada assignmentstatement -->digabungdengandeklarasiconstant.
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 dibuat 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 sesu ai 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. Tapi 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 program, 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 berikut:
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 kg-
an.
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 berikutnya 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, k ita ak an panggil 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,selenjutnyakitabuatsubprocedure 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.
Sekarangkitacoba RUN program utama kita.Letakkancursorpada programutama dan
klikRUNseperti padagambardibawah.
Hasilnyaadalah,akan muncul pesanseperti padagambarberikut:
SubProcedure kitaSUKSES!!
Trus, gimana cara bikin Function Procedure?
Oke,sekarangkitacoba buatsebuahfunction.Seperti padasubprocedure,kitaakanpura-puramemiliki
program utama(yangsebenernya adalahsebuahsubprocedure juga.Ingat,programutama
sesungguhnyaadalahprogramExcel itusendiri).
Biar gampang,kitatetappakai code sebelumnyadancukupkitatambahmemanggil function
procedure. Oke..
Functionprocedure kitaadalah Penjumlahan.Berikutcode 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 yangdilakukancode diatasadalah:
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,functionsudahberes,sekarangwaktunyamemanggilnyadi programutama.Ingat,kitamasih
memakai programutama sebelumnyadenganmenambahkanpemanggilanfunction.
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 programutama, functiondipanggilbersamaandenganperintahmemunculkanpesan(perintah
MsgBox).Data yang kitainputadalah2 dan5.
Nah,jikakitaRUN programutama kita(ingat,letakkancursorpadaprogram utama),maka akanmuncul
pesanseperti gambardibawah.Hasil dari inputan2dan 5 adalah7!
SUKSES LAGI!!!

More Related Content

Similar to Belajar vba excel

Ebook tutorial belajar html
Ebook tutorial belajar htmlEbook tutorial belajar html
Ebook tutorial belajar html
Andi Irawan
 
Mastering kode html full
Mastering kode html   fullMastering kode html   full
Mastering kode html full
Manto Adjalach
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaEko Kurniawan Khannedy
 
JavaScript Dasar.pdf
JavaScript Dasar.pdfJavaScript Dasar.pdf
JavaScript Dasar.pdf
sulfanaidid1
 
Tutorial pivot sederhana excel
Tutorial pivot sederhana excelTutorial pivot sederhana excel
Tutorial pivot sederhana excel
Yudi Dwi Harjo
 
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
Fanny Pratama
 
Mengenal pemrograman java
Mengenal pemrograman javaMengenal pemrograman java
Mengenal pemrograman java
fandysp
 
Simdiq materi 4
Simdiq materi 4Simdiq materi 4
Simdiq materi 4
ssuserda7a19
 
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
AhmadSyaifuddin33
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-java
Farichah Riha
 
Variabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman IVariabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman I
Ifan Ok
 
Visual basic 2015
Visual basic 2015Visual basic 2015
Visual basic 2015
Ferry Sirait
 
MENU DAN IKON MS.WORD 2007
MENU DAN IKON MS.WORD 2007MENU DAN IKON MS.WORD 2007
MENU DAN IKON MS.WORD 2007
DOLI SYAHPUTRA, ST
 
Modul visual basic
Modul visual basicModul visual basic
Modul visual basic
Siti Khotijah
 

Similar to Belajar vba excel (20)

Ebook tutorial belajar html
Ebook tutorial belajar htmlEbook tutorial belajar html
Ebook tutorial belajar html
 
Mastering kode html full
Mastering kode html   fullMastering kode html   full
Mastering kode html full
 
Belajar kode html
Belajar kode htmlBelajar kode html
Belajar kode html
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan java
 
JavaScript Dasar.pdf
JavaScript Dasar.pdfJavaScript Dasar.pdf
JavaScript Dasar.pdf
 
Tutorial pivot sederhana excel
Tutorial pivot sederhana excelTutorial pivot sederhana excel
Tutorial pivot sederhana excel
 
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
F 12069 membuataplikasisederhanadenganmicrosoftaccess2007
 
Mengenal pemrograman java
Mengenal pemrograman javaMengenal pemrograman java
Mengenal pemrograman java
 
Trik Seputar Komputer
Trik Seputar KomputerTrik Seputar Komputer
Trik Seputar Komputer
 
Trik Seputar Komputer
Trik Seputar KomputerTrik Seputar Komputer
Trik Seputar Komputer
 
Simdiq materi 4
Simdiq materi 4Simdiq materi 4
Simdiq materi 4
 
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
04 - Pengenalan dan Dasar MS Office Excel VBA.pptx
 
Elemen-Elemen Program Pascal
Elemen-Elemen Program PascalElemen-Elemen Program Pascal
Elemen-Elemen Program Pascal
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-java
 
C over
C overC over
C over
 
Variabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman IVariabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman I
 
Visual basic 2015
Visual basic 2015Visual basic 2015
Visual basic 2015
 
MENU DAN IKON MS.WORD 2007
MENU DAN IKON MS.WORD 2007MENU DAN IKON MS.WORD 2007
MENU DAN IKON MS.WORD 2007
 
Modul visual basic
Modul visual basicModul visual basic
Modul visual basic
 
Noprianto Antiword
Noprianto AntiwordNoprianto Antiword
Noprianto Antiword
 

Recently uploaded

penjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkdpenjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkd
jaya35ml2
 
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakatPPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
jodikurniawan341
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
MuhammadBagusAprilia1
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
Nur afiyah
 
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa BaratPendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
Eldi Mardiansyah
 
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdfTabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
ppgpriyosetiawan43
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
smp4prg
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
lindaagina84
 
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdfEVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
Rismawati408268
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
 
AKSI NYATA MODUL 1.3 visi dan prakarsa perubahan
AKSI NYATA MODUL 1.3 visi  dan prakarsa perubahanAKSI NYATA MODUL 1.3 visi  dan prakarsa perubahan
AKSI NYATA MODUL 1.3 visi dan prakarsa perubahan
PutuRatihSiswinarti1
 
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdfPPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
SdyokoSusanto1
 
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum MerdekaModul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Fathan Emran
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
safitriana935
 
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
VenyHandayani2
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
ferrydmn1999
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptxPERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
TeukuEriSyahputra
 
untuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawasuntuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawas
TEDYHARTO1
 

Recently uploaded (20)

penjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkdpenjelasan tentang tugas dan wewenang pkd
penjelasan tentang tugas dan wewenang pkd
 
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakatPPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
 
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa BaratPendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
Pendampingan Individu 2 Modul 1 PGP 10 Kab. Sukabumi Jawa Barat
 
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdfTabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
Tabel 1. 7 Ruang Lingkup Terintegrasi dalam Mata Pelajaran dalam CASEL PSE.pdf
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
 
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdfEVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
EVIDENCE BASED DALAM PELAYANAN KB DAN KONTRASEPSI.pdf
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
AKSI NYATA MODUL 1.3 visi dan prakarsa perubahan
AKSI NYATA MODUL 1.3 visi  dan prakarsa perubahanAKSI NYATA MODUL 1.3 visi  dan prakarsa perubahan
AKSI NYATA MODUL 1.3 visi dan prakarsa perubahan
 
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdfPPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
PPT ELABORASI PEMAHAMAN MODUL 1.4. budaya positfpdf
 
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum MerdekaModul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar IPS Kelas 7 Fase D Kurikulum Merdeka
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
 
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
CGP.10.Pendampingan Individual 2 - VISI DAN PRAKARSA PERUBAHAN.pdf_20240528_1...
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptxPERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
PERSENTASI AKSI NYATA MODUL 1.4 BUDAYA POSITIF.pptx
 
untuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawasuntuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawas
 

Belajar vba excel

  • 1. 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.
  • 2. Mengenal Data Type Apa ituData Type? Sebenarnya,biargampangmengenalDataType,kitasebaiknyakenal duluapaituvariable.Karena sesungguhnya,datatype itudibutuhkankarenaadanyavariable. Tapi masalahnya,kitabelumakanmembahasvariable disini,soagarkita mengerti tentangdatatype, sebaiknyakitaulasdikiiiitajatentangvariable. Variable Variable ituseperti sebuahwadah.SebutajaBaskom.Nah,baskomini bisakitaisi benda,misalkan beras. Setiapsaat,kitabisamengisi sejumlahberaske dalambaskom, dansetiapsaat,kita jugabisa mengambilnyalagi. Variabledan DataType Sekarangapa hubungannyavariable dandatatype? Oke,kitakembali lagi ke baskomyah.Tadi,kitabarungomonginsatubenda,beras.Gimanakalo ternyatakitajuga butuhtepung,air,susu,santan,kacangdll.Kalojenisbendanyaadabanyak,makakita butuhlebihbanyakbaskom.Karena,benda-bendatadi gakbisakitajadiinsatu.Misal,tepungdicampur denganair,wah bisajadi bakwandonk.. Jadi,yangharus kitalakukanadalah,menyediakanlebihbanyakbaskom.Selanjutnya,baskomitukita beri label.Misal,baskomberas,baskomsusu,dll.Selanjutnya,kitaharusmemasukkan/mengambil benda-bendake baskomsesuai denganlabel. Jadi,apa itu datatype? Jadi data type ituseperti halnyajenis-jenisbendapadapengandaiankitatadi.Kalotadi adaberas, tepung,susudll,makadata type ada Integer,String,Single,Double,Long,dll. Dan ketikakitasudahmemberi label padasebuahvariabel (melakukan deklarasi) denganmenentukan jenisdatatypeyangbolehmasukke variable tersebut,makadata typelainnyatidakbolehdimasukkan ke variable tersebut.
  • 3. Kenapajenisdataharusdibeda-bedakanantarasatuvariable denganvariableyanglain? Seperti pengandaiantadi,misal tepungdigabungsamaair,bisajadi bakwan kan?Nah,begitupula alasankenapaada data type.Selainmeminimalisasierror,jugauntukefisiensi penggunaan penyimpanan. Misal begini,kitapunyabendaduren.Kalobendanyaituduren,makabaskomyangdibutuhkanadalah baskombesar.Karenawujudduren ituemangbesar.Tapi untukbaskomberas,gak perlubesar-besar. Dan tentugak akan efisienkalokitamenggunakanbaskomdurenuntukmenyimpanberas. Jadi,kitabutuhData Type yangberbeda-bedasesuai kebutuhan. Apa sajajenis-jenisDataType? Oke,berikutadalahjenis-jenisDataType padaVBA berikutpenjelasannya: Data Type Range Besar Penyimpanan Byte 0 s/d 255 1 byte Data type ini berupa angka dari·0 s/d 255. Tiap·angka, akan·dikodekan dalam binary sebesar·1 byte (8 bit). Misal, angka 1 yang kita beri label·Data Type Byte, akan dikodekan·dalam 8 bit menjadi 00000001. Sedangkan·255 dikodekan menjadi·11111111. Boolan True or False 2 byte Data type ini hanya memiliki 2 data·yaitu "True" dan "False". Disimpan sebagai Integer 16bit (2 byte). "True" = 1 dalam biner·Integer, dan "false" = -1 dalam·biner Integer. Bagaimana Integer disimpan dalam·biner dapat dilihat pada bagian·Data Type Integer dibawah. Integer -32768 s/d 32767 2 byte Data type ini dikodekan dalam biner dengan meggunakan sistem "Two's Complement".
  • 4. 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 precision floating-point) -3.402823E38 s/d -1.401298E-45 untuk nilai negatif dan 1.401298E-45 s/d 3.402823E38.untuk nilai positif 4 byte 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 (double precision floating-point) -1.79769313486231E308 s/d -4.94065645841247E-324 untuk nilai negatif; 4.94065645841247E-324 s/d 1.79769313486232E308 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. Decimal +/-79,228,162,514,264, 337,593,543,950,335 tanpa titik desimal; +/-7.9228162514264337593543950335 dengan 28 letak titik desimal; angka non-zero terkecil +/- 14 bytes
  • 5. 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 4 bytes String (variable- length) 0 to approximately 2 billion 10 bytes + string length String (fixed-length) 1 to approximately 65,400 Length of string String di kodekan dalam biner dengan menggunakan kode ASCI dan UTF-16. Variant (with numbers) Any numeric value up to the range of a Double 16 bytes Variant (with characters) Same range as for variable-length String 22 bytes + string length Data Type Variant adalah data type yang menampung semua jenis data type. User-defined (usingType) The range of each element is the same as the range of its data type. Number required by elements
  • 6. Mengenal Excel Visual Basic Editor Apa itu Visual Basic Editor? Bagaimana menulis program di VB Editor? Bagaimana memunculkan message box dialog? Selainitu,tutorial ini jugaakan memberikancontohcaramenambahkanMacro pada ButtonControls Form. Sebelummelanjutkantutorial ini,sebaiknyaandatelahmembacatutorial padalink"Bacadulu"di atas. Bagaimana jika tidak membaca tutorial diatas? Maka, kami tidakakan bertanggung-jawabkalauandamuntah-muntahkarenapusing. Oke,kitaanggap,semuasudahmembacatutorial diatas.Dan tutorial ini akan kami bagi menjadi beberapasegmen: 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 yangpertama: 1. Tentang Visual Basic Editor Untuk menuliskanbarisprogrampadaVBA Excel,kitamembutuhkanVisual BasicEditor(VBEditor).Lalu dimanaVB Editortersebut? Untuk membukaVBEditor,Klik TAB "Developer"-->Klik "Menu Visual Basic". Lihat gambar dibawah: Jikaanda tidakmenemukan Tab Developer,makaandaharusmemunculkannyaterlebihdahulu.Dan jikabelumtahucaranya,berarti anda belumbaca tutorial padalink"Baca dulu"di atas.Ayo!Baca dulu.. Jikaanda sudahmeng-klikMenu Visual Basic, maka akan muncul Window VBEditorseperti gambar berikut:
  • 7. Di dalamnyaterdapatProjectExplorerdanPropertiesExplorer. Lalu di mana tempat kita menulis Program!!!?? Tenang..Programakan ditulisdi Code Editor.Karenakitabelummenulisbarisprogramsebelumnya, maka tidakakan muncul Code Editor-nya.Yangada hanya VB Editor kosong tanpa Code Editor. Dan di hal ini akandibahaspada segmenberikutnya. 2. Object Sheet, Object Workbook, Object Form dan Object Module Nah,anggap saja,kitaakan menulisProgramVBA untukpertamakali.Karenaitu,kitaharus membukacode editor yangakan menjadi tempatmenuliskanbarisprogramkita. Code Editor,bisaberada di ObjectSheet,ObjectWorkbook,ObjectFormataujugaObjectModule. Apa itu semua??? Waduh,berarti belumpernahdengerOOPya?Kalobelum, bacapenjelasansingkatberikutya.. VBA berasal dari Visual Basic(VB) yangmerupakanbahasapemrogramanberbasisOOP(ObjectOriented Programming). Gampangnya,cara memahami VBA adalahseperti memahamisuatuobjectsehari-hari.Contohyang palingmudahmisalkanKucing.Ya,Kucingadalahobjectseperti halnyameja,pohon,bahkankita (manusia) jugaobject. Kembali ke contohobjectKucing. Ada banyakspesiesKucing,salahsatunyaadalahkucinganggora.Nahanggapaja, sekarangada kucing anggora bernamaMANISE. Seperti padaumumnya,kucingMANISEini bisabersuara"Meong"ataukita sebutmengeong.Selainitu, kucingMANISEjuga bisatidur,makan,dan sebagainya.
  • 8. KucingMANISEjuga memiliki warnayang bermacam-macam.Bentuktubuh,panjangekoryangjuga bermacam-macam. Selainitu,saatkitaeluskepalanya,kucingtersebutjugaakanmenjadi manja. Jadi..KalokitahubungkanKucingdenganVBA,makaKucingadalahObject. Kucingbisamengeong,tidur,makan danaktifitaslainnyamakapadaObjectVBA aktifitasitudisebut METHOD. Kucingmemiliki warnayangbermacam-macam, panjangekoryangbermacamdanlain-lain,makapada ObjectVBA karakteristikitudisebutPROPERTIES. Kucingjugajadi bersikapmanjasaat kitaelus,makapada ObjectVBA perilakuitudisebutBEHAVIOR (EVENT). Jadi,sebuahObjectpadaVBA akan memiliki Method,PropertiesdanEvent. Oke,itudulutentangOOP.Sekarangkitalanjutke ObjectModule.. Apa itu Module? Module adalahsalahsatu objectVBA.BerbedadenganObjectWorksheetyangnampakdi MS Excel, Module hanyaberisi Code Editorsaja.Dan di Code Editorpada Module inilahkitaakanmenulisbaris program. Secara Default,Module belummuncul. Untukmemunculkannya,padaVBEditorlakukan, klik kanan -- > pilih Insert --> Pilih Module. Maka akanmuncul Module.Ingat,Module adalahObjectyanghanyaberisi Code Editorsaja.Lihat gambar dibawah.
  • 9. Apakah kita harus selalu menulis baris Program pada Module? Selainmenulisdi objectmodule,kitadapatpulamenulisbarisprogrampadamasing-masingCode Editor yang ada padaobjectSheetdanobjectWorksheet. Dan untukmembuatObjectSheetbaru,kitacukupmenambahworksheetpadaWorkspace Excel.Secara otomatis,objectsheetakanmuncul di Visual BasicEditor. Untuk memunculkanCode EditorpadaObjectSheetcukupKlikduakali padasalahsatuobjectsheet pada projectExplorer(di VBEditor).
  • 10. Selainitu,dari Excel,kitajugabisamembukaCode EditordenganKlikKananpadaTabSheet -->Pilih ViewCode. Akanmuncul code editorberikut: 3. Menulis Program Untuk permulaan,kitaakanmencobamenulisprogramyangsangatsederhana.Kitaakanmemunculkan sebuahwindowpop-up! Lihat gambardibawah:
  • 11. Semuabarisprogram, harus beradadi dalamantara Sub"nama" () dan End Sub.Dan ini kitasebut sebagai prosedur. Setiapprosedurharuskitaberi nama.Pada gambar diatas,namaproseduradalah:Pesan.Jadi baris programnyaadalahsebegai berikut: SubPesan() MsgBox "Halo,ini VBA Code pertamasaya!" End Sub MsgBox adalahfungsi untukmemunculkanwindow pop-up. Dah, selesai barisprogramkita. 4. Menjalankan Baris Program dengan Button Controls Form Setelahkitamembuatprosedur,makalangkahberikutnyaadalahmemanggilnya. Sekarang,cobabuat sebuahButtonControlsForm. Silahkan baca tutorial tentang ini pada link "Baca dulu". SetelahmembuatButtonControlsForm(ingat,gunakan Button yang Controls Form), maka akan muncul windowyangmemintakitauntukmenyematkansebuahmacropadaButtonyang telahkita buat.Yang dimaksuddenganmacroini adalahproseduryangsebelumnyatelahkitabuat. Dan..Ternyata,proseduryangtadi telahkitabuatada disana.Kitacukup pilihProsedur(Macro) Pesan dan klikOK.
  • 12. 5. Inilah hasilnya KalausemuasudahOK,sekarangcoba klikdi cell sembarangagar Buttonyangbaru saja kitabuat tidak ter-pilih. Ciri-ciri Buttonsedangter-pilihadalah,muncul titik-titikdisekelilingButton.Dansaat kitatidaksedang memilihnya,titik-titikituhilang.Lihatgambardibawah: Dan, jikabuttontidaksedangterpilih,saatkursorkitaberadadi atas button,makakursorkita akan berubahmenjadi gambarJari.Lihatgambar dibawah. Dan sekarang,silahkanKlik. Daaan...Yup.. Akanmuncul windowseperti dibawah.
  • 13. Selamat!Andabarusaja membuatsebuahprogramVBA..! Mengenal Statement Sip..!Kitamulai dari pertanyaan,apaituStatementdi VBA Excel? Statementdi VBA adalahrangkaiankata-katayangbisadipahami olehVBA agarVBA melakukansesuatu sesuai keinginankita.Agarbisadipahami olehVBA,kata-kataituharusmengikuti aturan. Anggapaja kitasedangbermainkode dengantemankita.Sebelumnya,kitasudahpunyakesepakatan urutan-urutancara menuliskode.Agarbisadipahami temankita,makakode yangkitatulisharussesuai aturan yangkita sepakati.Dankali ini,temankitaadalahVBA. So,say hi to VBA..Hi...! Apa sajajenis-jenisStatementdalamVBA? StatementVBA,bisakitapilah-pilahmenjadi 3jenis.Agarprogramkitabisadigunakan,makakitaharus menggunakansemuastatement-statementini.Jadi,pembagianini hanyauntukmempermudah pemahamankitasaja.OK.. Nah berikutstatement-stemanetitu: 1. DeclarationStatement 2. AssignmentStatement 3. Executeable Statement Dan kitaakan bahas satu-satuberikutcontoh-contohnya,soterusdibacayah..
  • 14. 1. DeclarationStatement Sesuai namanya, Declaration(Deklarasi),statementini digunakanuntukmendeklarasikan procedure, variable,arraydan constant. Woi,apaan semuaitu? Tenang,kitaakan mempelajarinyadi tutorial lainnya.Jadi,untuksaatini,kitacukuptahunamanyadulu. Oke.. Kitacoba pahami maksudkata, mendeklarasikan.Maksudnyamendeklarasikandisini adalah, mengumumkankepadaVBA,bahwakitatelahmembuat procedure,variable,array danconstant. Artinya,VBA tidakbolehmengijinkan,jikaadayangmenggunakannamayangsama. Di dalamdeklarasi inilahkitamenentukan jenisdanscope itemyangkitadeklarasikan. Analoginyaseperti ini: Saya punyausahayang saya beri nama BebekNgarasan.Agar orang-orangtidakmenggunakannama yang samauntukusaha mereka,makasaya mendeklarasikanini ke pemerintah. Dalamdeklarasi sayaini,sayamenyebutkan jenisusahasayayaiturumahmakan.Sehingga,orangyang akan datangke tempatusahasaya, bukanorang-orangyangmau menjahitkanpakaian,ataucabutgigi, tapi orang yang lapardan inginmakan. Selainjenisusaha,sayajugaharusmenyebutkan scope (cakupan) usahasaya.Apakahnamasayaini berlakuuntukdi kotaini saja,ataukan se provinsi saja,ataudalamnegara ini saja,atau bahkanseluruh dunia?Jikasayacuma pilihdi kotaini saja,maka orang lainbolehmembuatnamayangsama di kota lain. Kitaliatcontohnyaya.. Sub ContohProc() Const Jumlahmobil As Integer Dim Namakaryawan As String ' Statement-statement lainnya End Sub Ada tigadeklarasi statementpadacontohdi atas yaitu: - Deklarasi Procedure.Dideklarasikanmenggunakan Sub() danEndSub.
  • 15. - Deklarasi Constant.Dideklarasikandengan Const - Deklarasi Variable.Dideklarasikandengan Dim. Untuk detil masing-masingitem, akandibahasdi tutorial terpisah. 2. AssignmentStatement Statementini,digunakanuntukmenugaskansebuahnilai ataupunexpresions padaVariabledan Constant. Analogi lagi yah: Saya sudahmendeklarasikanusaharumahmakanBebekNgarasan.Nah,selanjutnyayangharussaya lakukanadalahmengisi rumahmakansayadengankelengkapan.Baikbarang-barang,karyawanjuga peraturan. Disini jugasama. Variabeldan Constantyangtelahkitadeklarasikanharuskitaberi tugas(diisi). Statementuntukmengisi/menugaskannyadisebut AssignmentStatement. Contohyah: Sub ContohProc() Dim Namakaryawan As string Const Jumlahmobil as integer Namakaryawan = "ngarasan" Jumlahmobil = 1 End Sub Contohdi atas, saya memasukkannilai string: ngarasan padavariable Namakaryawan.Danselanjutnya memasukkannilai integer:1pada constantJumlahmobil. 3. ExecuteableStatement Kalostatementyangini,statementyangdigunakanagarVBA melakukansuatuaksi.Statementgolongan ini,dapatmengeksekusi sebuah method ataufunctiondanjugamelakukan loop (pengulangan)danbranch (percabangan) misal menggunakanIf.
  • 16. Oke,cara nelaahnya,kalo stement-stementsebelumnyabersifatpasif,hanyauntukpersiapan,makadi statementinilahhasil-hasil persiapansebelumnyadi eksekusi.Statementini sangatbanyakdan bervariasi.Mulai dari Loop menggunakanberbagai macamjenis,misal For..Next,While,dll. Percabanganmenggunakan If,Caseof,dsb.Dan,di statementinilahsebuahmethoddanfunctiondi exsekusi. Apa itumethoddanfunction,lihattutorial berikutnya. Ini adalahcontoh Executable Statement,hmmsebenernyasemuastatementadadisini: 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 Contohdi atas, ada Deklarasi statement -->Sub() ..endsub,danconst. Sub ApplyFormat() Const limit As Integer = 33 End Sub Selainitujugaada assignmentstatement -->digabungdengandeklarasiconstant. Const limit As Integer = 33
  • 17. 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 dibuat 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.
  • 18. 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 sesu ai 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. Tapi 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.
  • 19. 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 program, 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 berikut: 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 kg- an. 6. Kedelai diragi 7. Kedelai dibungkus.
  • 20. 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 berikutnya 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).
  • 21. 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, k ita ak an panggil 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,selenjutnyakitabuatsubprocedure 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. Sekarangkitacoba RUN program utama kita.Letakkancursorpada programutama dan klikRUNseperti padagambardibawah.
  • 22. Hasilnyaadalah,akan muncul pesanseperti padagambarberikut: SubProcedure kitaSUKSES!! Trus, gimana cara bikin Function Procedure? Oke,sekarangkitacoba buatsebuahfunction.Seperti padasubprocedure,kitaakanpura-puramemiliki program utama(yangsebenernya adalahsebuahsubprocedure juga.Ingat,programutama sesungguhnyaadalahprogramExcel itusendiri). Biar gampang,kitatetappakai code sebelumnyadancukupkitatambahmemanggil function procedure. Oke.. Functionprocedure kitaadalah Penjumlahan.Berikutcode function-nya: Function penjumlahan(input1 As Integer, input2 As Integer) As Integer 'baris program di function untuk menjumlahkan dua variabel
  • 23. penjumlahan = input1 + input2 End Function Apa yangdilakukancode diatasadalah: 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,functionsudahberes,sekarangwaktunyamemanggilnyadi programutama.Ingat,kitamasih memakai programutama sebelumnyadenganmenambahkanpemanggilanfunction. 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 programutama, functiondipanggilbersamaandenganperintahmemunculkanpesan(perintah MsgBox).Data yang kitainputadalah2 dan5.
  • 24. Nah,jikakitaRUN programutama kita(ingat,letakkancursorpadaprogram utama),maka akanmuncul pesanseperti gambardibawah.Hasil dari inputan2dan 5 adalah7! SUKSES LAGI!!!