More Related Content
Similar to Vba lengkap (20)
Vba lengkap
- 1. 1
Nizam ©
Excel in a nutshellExcel in a nutshell
Nizam ©
Excel as objectExcel as object
DalamDalam graphical user interface,graphical user interface, aplikasiaplikasi
dandan bagianbagian--bagiannyabagiannya dikenaldikenal sebagaisebagai
objectobject
Object excelObject excel
•• ExcelExcel
•• WorkbookWorkbook
•• WorksheetWorksheet
•• RangeRange dalamdalam worksheetworksheet
•• ListboxListbox
•• Chart sheetChart sheet
•• ChartChart
•• DsbDsb..
Nizam ©
ObjectObject utamautama
WorkbooksWorkbooks merupakanmerupakan ““folderfolder””
yangyang berisiberisi::
•• WorksheetsWorksheets
•• Chart sheetsChart sheets
•• Macro sheets (.Macro sheets (.xlmxlm obsolete)obsolete)
•• Dialog sheets (obsolete)Dialog sheets (obsolete)
WorksheetsWorksheets merupakanmerupakan lembarlembar
kerjakerja
•• 1 worksheet1 worksheet terdiriterdiri daridari 256256 kolomkolom dandan
65,53665,536 barisbaris (16,777,216(16,777,216 selsel!!)!!)
setarasetara dengandengan 36,00036,000 halamanhalaman cetakcetak!!!!!! Nizam ©
Excel user interfaceExcel user interface
AntarmukaAntarmuka excelexcel bisabisa dilakukandilakukan
dengandengan beberapabeberapa caracara::
•• MenuMenu
•• Dialog boxDialog box
•• ToolbarsToolbars
•• DragDrag--andand--dropdrop
•• Keyboard shortcutsKeyboard shortcuts
Nizam ©
Entry dataEntry data
NilaiNilai ((angkaangka,, tanggaltanggal,, waktuwaktu))
TextText
RumusRumus
NilaiNilai logikalogika ((booleanboolean –– truetrue--false)false)
BeberapaBeberapa tipstips
•• MengisiMengisi datadata padapada range:range: isikanisikan datadata padapada active cell,active cell,
tekantekan ctrl+Enterctrl+Enter
•• MengcopyMengcopy keke bawahbawah: drag: drag pojokpojok selectionselection
•• MengcopyMengcopy keke bawahbawah dgndgn increment: dragincrement: drag pojokpojok
selectionselection sambilsambil tekantekan ctrlctrl
•• UntukUntuk penulisanpenulisan teksteks yangyang panjangpanjang,, gantiganti barisbaris dengandengan
alt+enteralt+enter
•• UntukUntuk menulismenulis pecahanpecahan tulistulis 0 <0 <spasispasi>> pecahanpecahan
•• TanggalTanggal harihari iniini: ctrl+;: ctrl+;
•• JamJam saatsaat iniini:: ctrl+shiftctrl+shift+;+;
Nizam ©
BeberapaBeberapa kemampuankemampuan excelexcel
FormattingFormatting
FormulasFormulas
NamesNames
FunctionsFunctions
ShapesShapes
ChartsCharts
MacrosMacros
Database accessDatabase access filterfilter
- 2. 2
Nizam ©
Analysis toolsAnalysis tools
OutlineOutline
Automatic subtotalsAutomatic subtotals
Scenario managementScenario management
AnalysisAnalysis toolpaktoolpak
Pivot tablePivot table
AuditingAuditing
SolverSolver
AddAdd--insins
Nizam ©
cellcell
Relative A1Relative A1
Absolute $A$1Absolute $A$1
row absolute A$1row absolute A$1
Column absolute $A1Column absolute $A1
Referencing other sheets/workbooksReferencing other sheets/workbooks
=[data.xls]Sheet2[A2]+1=[data.xls]Sheet2[A2]+1
ReferensiReferensi dengandengan namanama : insert: insert
namename createcreate
Nizam ©
VBAVBA -- Visual Basic forVisual Basic for
ApplicationApplication
BahasaBahasa pemrogramanpemrograman untukuntuk
aplikasiaplikasi WindowsWindows
Nizam ©
BagianBagian 11
DasarDasar--dasardasar pemrogramanpemrograman VBAVBA
Nizam ©
ApaApa yangyang dibicarakandibicarakan??
MengenalMengenal VBAVBA
IDEIDE
PemrogramanPemrograman berbasisberbasis objectobject
CaraCara membuatmembuat program VBAprogram VBA
MakroMakro
Editor programEditor program
MenjalankanMenjalankan programprogram
MembuatMembuat fungsisendirifungsisendiri
MembuatMembuat prosedurprosedur
MengaturMengatur editoreditor
MelindungiMelindungi programprogram
Nizam ©
ApaApa dandan kenapakenapa VBAVBA
MerupakanMerupakan bahasabahasa pemrogramanpemrograman bagibagi
semuasemua aplikasiaplikasi Microsoft Office (Microsoft Office (ExelExel,,
Word, Access,Word, Access, PowerpointPowerpoint)) dandan beberapabeberapa
yang lain (Outlook, Visio, AutoCAD,yang lain (Outlook, Visio, AutoCAD,
MapInfo,MapInfo, dsbdsb.).)
DapatDapat berfungsiberfungsi sebagaisebagai macromacro atauatau
bahasabahasa pemrogramanpemrograman
MerupakanMerupakan bahasabahasa programprogram beorientasibeorientasi
object,object, semuasemua object officeobject office dapatdapat dengandengan
mudahmudah dimanipulasidimanipulasi dengandengan VBAVBA
BelajarBelajar satusatu bahasabahasa dapatdapat daplikasikandaplikasikan
dalamdalam banyakbanyak aplikasiaplikasi WindowsWindows
- 3. 3
Nizam ©
kenapakenapa
MendukungMendukung aplikasiaplikasi internetinternet dandan
intranetintranet
MendukungMendukung ActiveX controlsActiveX controls
Code editorCode editor dengandengan bantuanbantuan yangyang
lengkaplengkap dandan debuggerdebugger
Form building toolsForm building tools
Object browserObject browser
DllDll yangyang memudahkanmemudahkan pembuatanpembuatan
programprogram Nizam ©
IDEIDE –– integrated development environmentintegrated development environment
UntukUntuk menulismenulis/edit program VBA/edit program VBA
digunakandigunakan IDEIDE
Nizam ©
Module window
Project explorer
Properties window
Procedure listObject list
Nizam ©
PrinsipPrinsip prmrogramanprmrograman berbasisberbasis objectobject
ObjectObject
•• Workbook, worksheet, chart, cell,Workbook, worksheet, chart, cell, dsbdsb..
PropertiesProperties
•• SetiapSetiap objectobject memilikimemiliki properties: color,properties: color,
font, italic,font, italic, dsbdsb..
Method & procedureMethod & procedure
•• Cara/Cara/perintahperintah untukuntuk melakukanmelakukan
sesuatusesuatu:: pindahpindah worksheet,worksheet, pindahpindah
barisbaris,, dsbdsb..
Nizam ©
VBA programmingVBA programming
ProgramProgram dalamdalam VBAVBA disebutdisebut prosedurprosedur ((dandan
function)function)
TigaTiga jenisjenis prosedurprosedur
•• Command macrosCommand macros mengotomasimengotomasi prosedurprosedur--
prosedurprosedur,, fungsifungsi--fungsifungsi yangyang adaada (built(built--in)in)
dalamdalam aplikasiaplikasi,, memformatmemformat,, menyimpanmenyimpan,, dsbdsb..
•• UserUser--defined function (function procedure)defined function (function procedure)
program yangprogram yang berisiberisi rumusrumus dandan perintahperintah yangyang
kitakita susunsusun sendirisendiri
•• Property procedureProperty procedure menunjukkanmenunjukkan atauatau
mengubahmengubah propertiproperti daridari suausuau object (classobject (class
module)module)
Nizam ©
CaraCara membuatmembuat programprogram
DenganDengan merekammerekam macro (macromacro (macro
recording)recording)
DenganDengan menulismenulis programprogram dalamdalam
IDE/VBA editorIDE/VBA editor
- 4. 4
Nizam ©
MembuatMembuat dandan menjalankanmenjalankan macromacro
ToolsTools macromacro record macrorecord macro
LakukanLakukan prosedurprosedur--prosedurprosedur dandan
perubahanperubahan propertiesproperties padapada
worksheetworksheet
Stop macro recordingStop macro recording
Edit macroEdit macro untukuntuk memberbaikimemberbaiki dandan
mengubahmengubah hasilhasil rekamanrekaman
MenjalankanMenjalankan::
•• DenganDengan shortcut,shortcut, atauatau
•• ToolsTools macromacro runrun pilihpilih namanama macromacro Nizam ©
MenulisMenulis programprogram
ToolsTools macromacro visualvisual basic editorbasic editor
atauatau
ClickClick tomboltombol VBEVBE
PindahPindah daridari VBEVBE keke aplikasiaplikasi
alt+F11alt+F11
TuliskanTuliskan program (functionprogram (function atauatau
procedure)procedure)
•• SubSub
BarisBaris programprogram
•• End subEnd sub
Nizam ©
FungsiFungsi
FungsiFungsi adalahadalah rumusrumus yangyang mengolahmengolah argumenargumen
dandan mengembalikanmengembalikan hasilhasil
StrukturStruktur fungsifungsi
FunctionFunction NamaFungsi(argumen1, argumen2,NamaFungsi(argumen1, argumen2, ……))
[[PernyataanPernyataan/statement VBA]/statement VBA]
NamaFungsiNamaFungsi == hasilhasil yangyang dikembalikandikembalikan
End FunctionEnd Function
BagianbagianBagianbagian::
•• StatementStatement FunctionFunction
•• NamaNama fungsifungsi
•• ArgumenArgumen fungsifungsi (parameter)(parameter)
•• Statement VBA yangStatement VBA yang melakukanmelakukan hitunganhitungan
•• HasilHasil yangyang dikembalikandikembalikan namanama fungsifungsi ==
•• StatementStatement End FunctionEnd Function
Nizam ©
MembuatMembuat fungsifungsi
ContohContoh:: menghitungmenghitung sisisisi miringmiring
segitigasegitiga
•• SisimiringSisimiring = sqr(x= sqr(x22 + y+ y22))
FunctionFunction sisimiring(xsisimiring(x, y), y) ‘‘ namanama fungifungi
sisimiringsisimiring == sqr(xsqr(x ^ 2 + y ^ 2)^ 2 + y ^ 2) ‘‘ nilainilai
hasilhasil
End FunctionEnd Function
PemakaianPemakaian:: isikanisikan padapada selsel dengandengan
namanama formula,formula, misalmisal =sisimiring(3,=sisimiring(3,
4)4) akanakan menghasilkanmenghasilkan 55
Nizam ©
MembuatMembuat fungsifungsi
Function akar(A, B, C)Function akar(A, B, C)
If A <> 0 ThenIf A <> 0 Then
diskrim = B ^ 2diskrim = B ^ 2 -- 4 * A * C4 * A * C
If diskrim > 0 ThenIf diskrim > 0 Then
akar = "dua akar riel"akar = "dua akar riel"
ElseIf diskrim = 0 ThenElseIf diskrim = 0 Then
akar =akar = --B / (2 * A)B / (2 * A)
ElseElse
akar = "akar imaginer"akar = "akar imaginer"
End IfEnd If
ElseElse
akar = "bukan persamaan kuadrat"akar = "bukan persamaan kuadrat"
End IfEnd If
End FunctionEnd Function
Nizam ©
prosedurprosedur
ProsedurProsedur adalahadalah unit programunit program dalamdalam
VBA yangVBA yang merupakanmerupakan blokblok kodekode
dalamdalam satusatu modulmodul
StrukturStruktur sebuahsebuah prosedurprosedur
SubSub NamaProsedurNamaProsedur ((argumen1,argumen1,
argumen2,argumen2,……))
[[pernyataanpernyataan/statement VBA]/statement VBA]
End SubEnd Sub
- 5. 5
Nizam ©
MembuatMembuat prosedurprosedur
ContohContoh:: perhitunganperhitungan bungabunga
SubSub EnterLoanDataEnterLoanData()()
SubSub InputDataPinjamanInputDataPinjaman()()
Range("bunga").Value = 0.08Range("bunga").Value = 0.08
Range("lama").Value = 10Range("lama").Value = 10
Range("pinjaman").Value = 100000000Range("pinjaman").Value = 100000000
Range("bayar").Value =Range("bayar").Value =
"=PMT(bunga/12,lama*12,pinjaman)""=PMT(bunga/12,lama*12,pinjaman)"
End SubEnd Sub
PenggunaanPenggunaan:: toolstools macromacro pilihpilih namanama
subsub InputDataPinjamanInputDataPinjaman runrun Nizam ©
MemanfaatkanMemanfaatkan intellisenseintellisense
SetiapSetiap ojectoject dalamdalam excelexcel memilikimemiliki
propertiesproperties dandan methods,methods,
UntukUntuk memanipulasimemanipulasi obyekobyek dalamdalam
program VBA,program VBA, kitakita bisabisa memanfaatkanmemanfaatkan
intellisenseintellisense
CaranyaCaranya::
•• TuliskanTuliskan namanama obyekobyek dilanjutkandilanjutkan dengandengan titiktitik
(.)(.) akanakan keluarkeluar propertiesproperties daridari obyekobyek
tersebuttersebut
•• ContohContoh: application.: application.
•• KalauKalau kitakita tekantekan <esc><esc> intellisenseintellisense taktak akanakan
munculmuncul lagilagi untukuntuk obyekobyek yangyang samasama,, untukuntuk
memunculkanmemunculkan lagilagi tekantekan Ctrl+JCtrl+J
Nizam ©
InformasiInformasi parameterparameter
SetiapSetiap fungsifungsi memilikimemiliki satu/beberapasatu/beberapa
parameter, parameterparameter, parameter terebutterebut dapatdapat
dimunculkandimunculkan dengandengan menuliskanmenuliskan
namanama fungsifungsi dandan tandatanda kurungkurung bukabuka
•• activecell.Formula=pmt(activecell.Formula=pmt( akanakan munculmuncul
argumenargumen untukuntuk fungsifungsi pmtpmt
Nizam ©
MenyimpanMenyimpan/export/export modulmodul
Dari project explorer,Dari project explorer, pilihpilih modulmodul
yangyang akanakan disimpandisimpan
PilihPilih File|ExportFile|Export FileFile
PilihPilih lokasilokasi tempattempat menyimpanmenyimpan filefile
BeriBeri namanama file.BASfile.BAS
TekanTekan SaveSave
Nizam ©
Mengimpor/ambilMengimpor/ambil modulmodul
Dari project explorerDari project explorer
PilihPilih File|ImportFile|Import FileFile
PilihPilih filefile daridari lokasilokasi tempattempat
menyimpanmenyimpan file.BASfile.BAS
TekanTekan OpenOpen
Nizam ©
MengaturMengatur editoreditor
CaraCara kerjakerja dandan tampilantampilan editoreditor dapatdapat
diaturdiatur dengandengan menumenu Tools|OptionsTools|Options
- 6. 6
Nizam ©
MelindungiMelindungi programprogram
ProgramProgram dapatdapat dilindungidilindungi dengandengan
passwordpassword
Tools|ProjectNameTools|ProjectName PropertiesProperties
dialog box,dialog box, pilihpilih ProtectionProtection
IsikanIsikan passwordpassword untukuntuk melindungimelindungi
programprogram
OKOK
Nizam ©
BagianBagian 22
VariabelVariabel dandan konstantakonstanta
Nizam ©
ApaApa yangyang dibicarakandibicarakan??
MendeklarasiMendeklarasi variabelvariabel
MemahamiMemahami lingkuplingkup varaibelvaraibel
MengirimMengirim variabelvariabel sbgsbg referensireferensi dandan sbgsbg
argumenargumen
VariabelVariabel statikstatik
MenghindariMenghindari kesalahankesalahan variabelvariabel
JenisJenis datadata variabelvariabel
ArrayArray
KonstantaKonstanta
Nizam ©
DeklarasiDeklarasi variabelvariabel
VariabelVariabel dalamdalam VBAVBA sebaiknyasebaiknya
dideklarasikandideklarasikan untukuntuk menyatakanmenyatakan namanama
dandan jenisjenis data (data type)data (data type)
PendeklrasianPendeklrasian variabelvariabel menghindarimenghindari
kesalahankesalahan dandan mengefisienkanmengefisienkan programprogram
CaranyaCaranya:: dengandengan pernyataanpernyataan DimDim
DimDim namavarnamavar AsAs jenisdatajenisdata
NamavarNamavar harusharus dimulaidimulai dengandengan hurufhuruf, max, max
255255 karakterkarakter,, tidaktidak mengandungmengandung spasispasi
dandan .!@#$%&.!@#$%&
Nizam ©
contohcontoh
FunctionFunction GrossMarginGrossMargin()()
‘‘ deklarasideklarasi variabelvariabel
DimDim totalSalestotalSales
DimDim totalExpensestotalExpenses
‘‘programprogram
totalSalestotalSales == Application.Sum(Range(Application.Sum(Range(““SalesSales””))))
totalExpensestotalExpenses ==
Application.Sum(Range(Application.Sum(Range(““ExpensesExpenses””))))
GrossMarginGrossMargin=(=(totalSalestotalSales ––
totalExpenses)/totalSalestotalExpenses)/totalSales
End FunctionEnd Function
Nizam ©
LingkupLingkup/scope/scope variabelvariabel
DalamDalam VBAVBA lingkuplingkup variabelvariabel
LingkupLingkup prosedurprosedur
LingkupLingkup modulmodul
LingkupLingkup publikpublik
- 7. 7
Nizam ©
LingkupLingkup prosedurprosedur
VariabelVariabel hanyahanya bisabisa diaksesdiakses oleholeh pernyataanpernyataan--pernyataanpernyataan
dalamdalam prosedurprosedur yangyang samasama
Sub Procedure1()Sub Procedure1()
DimDim pesanpesan
‘‘ semuasemua pernyataanpernyataan didi dalamdalam prosedurprosedur iniini
‘‘ dapatdapat mengaksesmengakses variabelvariabel ‘‘pesanpesan’’
pesanpesan == ““ SayaSaya dalamdalam lingkuplingkup””
MsgBoxMsgBox pesanpesan
End SubEnd Sub
Sub Procedure2()Sub Procedure2()
‘‘ pernyataanpernyataan didi dalamdalam prosedurprosedur iniini
‘‘ taktak dapatdapat mengaksesmengakses variabelvariabel ‘‘pesanpesan’’
MsgBoxMsgBox pesanpesan ‘‘ variabelvariabel pesanpesan taktak dikenaldikenal dalamdalam
prosedurprosedur iniini
End SubEnd Sub
Nizam ©
DeklarasiDeklarasi implisitimplisit dandan eksplisiteksplisit
PadaPada contohcontoh 2,2, variabelvariabel pesanpesan sebetulnyasebetulnya
taktak dikenaldikenal,, tetapitetapi ketikaketika dijalankandijalankan tetaptetap
memberimemberi hasilhasil,, dalamdalam halhal iniini <blank>.<blank>. IniIni
dikarenakandikarenakan VBAVBA mengenalmengenal deklarasideklarasi
implisitimplisit ((semuasemua variabelvariabel otomatisotomatis diberidiberi
hargaharga <blank>,<blank>, meskimeski taktak dikenaldikenal))
KondisiKondisi semacamsemacam iniini kurangkurang baikbaik dalamdalam
pemrogramanpemrograman,, sebaiknyasebaiknya dinyatakandinyatakan
bahwabahwa semuasemua variabelvariabel harusharus
dideklarasikandideklarasikan agaragar taktak terjaditerjadi kesalahankesalahan
UntukUntuk menghindarimenghindari
•• Option ExplicitOption Explicit
Nizam ©
LingkupLingkup modulmodul
AgarAgar variabelvariabel dapatdapat diaksesdiakses oleholeh
beberapabeberapa prosedurprosedur harusharus dideklarasidideklarasi
sebelum/disebelum/di luarluar prosedurprosedur--prosedurprosedur
yangyang menggunakanmenggunakan variabelvariabel tersebuttersebut
Nizam ©
contohcontoh
Sub CalcMargins1()Sub CalcMargins1()
Range("GrossMarg").Value = GrossMarginCalcRange("GrossMarg").Value = GrossMarginCalc
Range("NetMarg").Value =Range("NetMarg").Value =
NetMarginCalc(Range("FixedCosts").Value)NetMarginCalc(Range("FixedCosts").Value)
End SubEnd Sub
Function GrossMarginCalc()Function GrossMarginCalc()
Dim totSalesDim totSales
Dim totExpensesDim totExpenses
totSales = Application.Sum(Range("Sales"))totSales = Application.Sum(Range("Sales"))
totExpenses = Application.Sum(Range("Expenses"))totExpenses = Application.Sum(Range("Expenses"))
GrossMarginCalc = (totSalesGrossMarginCalc = (totSales -- totExpenses) /totExpenses) /
totSalestotSales
End FunctionEnd Function
Function NetMarginCalc(fixedCosts)Function NetMarginCalc(fixedCosts)
Dim totSalesDim totSales
Dim totExpensesDim totExpenses
totSales = Application.Sum(Range("Sales"))totSales = Application.Sum(Range("Sales"))
totExpenses = Application.Sum(Range("Expenses"))totExpenses = Application.Sum(Range("Expenses"))
NetMarginCalc = (totSalesNetMarginCalc = (totSales -- totExpensestotExpenses --
fixedCosts)fixedCosts) __ totSalestotSales
End FunctionEnd Function
Dim totSales2Dim totSales2
Dim totExpenses2Dim totExpenses2
Sub CalcMargins2()Sub CalcMargins2()
Range("GrossMarg").Value = GrossMarginCalc2Range("GrossMarg").Value = GrossMarginCalc2
Range("NetMarg").Value =Range("NetMarg").Value =
NetMarginCalc2(Range("FixedCosts").Value)NetMarginCalc2(Range("FixedCosts").Value)
End SubEnd Sub
Function GrossMarginCalc2()Function GrossMarginCalc2()
totSales2 = Application.Sum(Range("Sales"))totSales2 = Application.Sum(Range("Sales"))
totExpenses2 =totExpenses2 =
Application.Sum(Range("Expenses"))Application.Sum(Range("Expenses"))
GrossMarginCalc2 = (totSales2GrossMarginCalc2 = (totSales2 -- totExpenses2) /totExpenses2) /
totSales2totSales2
End FunctionEnd Function
Function NetMarginCalc2(fixedCosts)Function NetMarginCalc2(fixedCosts)
NetMarginCalc2 = (totSales2NetMarginCalc2 = (totSales2 -- totExpenses2totExpenses2 __
-- fixedCosts2) / totSales2fixedCosts2) / totSales2
End FunctionEnd Function
Nizam ©
LingkupLingkup publikpublik
KadangKadang kitakita menginginkanmenginginkan semuasemua
modulmodul dalamdalam proyekproyek kitakita dapatdapat
mengaksesmengakses variabelvariabel lingkuplingkup publikpublik
CaranyaCaranya:: deklarasikandeklarasikan dengandengan
publicpublic namavariabelnamavariabel
UntukUntuk menggantikanmenggantikan dimdim
namavariabelnamavariabel
Nizam ©
MengirimMengirim argumenargumen variabelvariabel
BilaBila programprogram terdiriterdiri daridari banyakbanyak prosedurprosedur,,
mendeklarasikanmendeklarasikan variabelvariabel dalamdalam lingkuplingkup
modulmodul dapatdapat berbahayaberbahaya,, karenakarena nilainilai
variabelvariabel dapatdapat diubahdiubah oleholeh setiapsetiap prosedurprosedur
yangyang mengaksesmengakses variabelvariabel tersebuttersebut atauatau
variabelvariabel yangyang samasama dideklarasikandideklarasikan
berbedaberbeda dalamdalam prosedurprosedur lainlain
UntukUntuk menghindarimenghindari kesalahankesalahan semacamsemacam
ituitu,, variabelvariabel dapatdapat dikirimdikirim daridari satusatu
prosedurprosedur keke yang lainyang lain sebagaisebagai argumenargumen
PengirimanPengiriman argumenargumen variabelvariabel dapatdapat
berdasarberdasar referensireferensi atauatau berdasarberdasar nilainilai
variabelvariabel
- 8. 8
Nizam ©
MengirimMengirim variabelvariabel berdasarberdasar referensireferensi
ContohContoh::
Sub procedure3()Sub procedure3()
DimDim pesanpesan
pesanpesan = "Pesan asli!"= "Pesan asli!"
procedure4procedure4 pesanpesan
MsgBoxMsgBox pesanpesan
End SubEnd Sub
Sub procedure4(Sub procedure4(kirimankiriman))
MsgBoxMsgBox kirimankiriman
kirimankiriman = "pesan telah sampai!"= "pesan telah sampai!"
End SubEnd Sub
BilaBila procedure3procedure3 dijalankandijalankan,, mulamula--mulamula pesanpesan berisiberisi ““PesanPesan
asliasli!!”” kemudiankemudian berisiberisi ““pesanpesan telahtelah sampaisampai!!””
Nizam ©
MengirimMengirim variabelvariabel berdasarberdasar nilainilai
ContohContoh::
Sub procedure5()Sub procedure5()
Dim pesanDim pesan
pesan = "Pesan asli!"pesan = "Pesan asli!"
procedure6 pesanprocedure6 pesan
MsgBox pesanMsgBox pesan
End SubEnd Sub
Sub procedure6(ByVal pesan)Sub procedure6(ByVal pesan)
MsgBox pesanMsgBox pesan
pesan = "terimakasih atas kirimannya!"pesan = "terimakasih atas kirimannya!"
End SubEnd Sub
BilaBila procedure5procedure5 dijalankandijalankan,, variabelvariabel pesanpesan akanakan tetaptetap
berisiberisi ““PesanPesan asliasli!!”” karenakarena yangyang dikirimdikirim hanyahanya nilainyanilainya
((ByValByVal))
Nizam ©
VariabelVariabel statisstatis
DalamDalam VBA,VBA, variabelvariabel dalamdalam prosedurprosedur
setelahsetelah digunakandigunakan nilainyanilainya akanakan
dihapusdihapus;; ketikaketika prosedurprosedur dipanggildipanggil
lagilagi,, akanakan diisidiisi// hitunghitung lagilagi
BilaBila inginingin nilainilai variabelvariabel taktak diubahdiubah
bisabisa dipakaidipakai variabelvariabel statisstatis (static(static
variable)variable)
Nizam ©
ContohContoh variabelvariabel statikstatik
Sub tesStatik()Sub tesStatik()
ProsedurStatikProsedurStatik
ProsedurStatikProsedurStatik
End SubEnd Sub
Sub ProsedurStatik()Sub ProsedurStatik()
Static varStatikStatic varStatik
Dim varRegulerDim varReguler
varStatik = varStatik + 5varStatik = varStatik + 5
varReguler = varReguler + 5varReguler = varReguler + 5
MsgBox "varStatik = " & varStatik & " dan varReguler = " &MsgBox "varStatik = " & varStatik & " dan varReguler = " &
varRegulervarReguler
End SubEnd Sub
SaatSaat dijalankandijalankan nilainilai varStatikvarStatik mulamula--mulamula 5,5, lalulalu 10,10,
sedangkansedangkan varRegulervarReguler tetaptetap 55
Nizam ©
MenghindariMenghindari kesalahankesalahan variabelvariabel
KadangKadang kitakita salahsalah mengetikmengetik namanama
variabelvariabel,, kesalahankesalahan iniini palingpaling seringsering
terjaditerjadi padapada pembuatanpembuatan program yangprogram yang
besarbesar
UntukUntuk menghidarinyamenghidarinya,, gunakangunakan perintahperintah
explicit,explicit, makamaka VBAVBA akanakan memberimemberi pesarpesar
errorerror bilabila ketemuketemu variabelvariabel barubaru yangyang
belumbelum dideklarasikandideklarasikan
CaranyaCaranya::
•• DenganDengan mendeklarasikanmendeklarasikan didi bagianbagian atasatas modulmodul
Option ExplicitOption Explicit
•• PilihPilih Tools|OptionTools|Option modulmodul general,general,
pilih/contrengpilih/contreng Require Variable DeclarationRequire Variable Declaration
Nizam ©
JenisJenis datadata variabelvariabel
VBAVBA secarasecara otomatisotomatis memberimemberi jenisjenis datadata
variant (22 byte)variant (22 byte) untukuntuk setiapsetiap variabelvariabel
yangyang dideklarasikandideklarasikan tanpatanpa diberidiberi jenisjenis
datadata
UntukUntuk menghematmenghemat memorimemori dandan
menambahmenambah efisiensiefisiensi programprogram jenisjenis datadata
sebaiknyasebaiknya dinyatakandinyatakan padapada saatsaat deklarasideklarasi
variabelvariabel
Cara:Cara:
•• DimDim namaVariabelnamaVariabel AsAs JenisDataJenisData
ContohContoh::
•• DimDim katakata As StringAs String
•• DimDim noMhsnoMhs As IntegerAs Integer
- 9. 9
Nizam ©
JenisJenis datadata variabelvariabel
DapatDapat untukuntuk sembarangsembarang jenisjenis datadata22 bytes +22 bytes +
1 byte per1 byte per
charchar
VariantVariant
(string)(string)
DapatDapat untukuntuk sembarangsembarang jenisjenis datadata16 byte16 byteVariantVariant
UntukUntuk teksteks,, dapatdapat sampaisampai 64KByte64KByte$$1 byte per1 byte per
charchar
StringString
BilBil pecahanpecahan presisipresisi tunggaltunggal!!4 bytes4 bytesSingleSingle
ReferensiReferensi obyekobyek4 bytes4 bytesObjectObject
BilanganBilangan cacahcacah besarbesar --2,147,483,6482,147,483,648 sampaisampai
2,147,483,64872,147,483,6487
&&4 bytes4 bytesLongLong
UntukUntuk bilbil cacahcacah antaraantara --32,76832,768 sampaisampai 32,76732,767%%2 bytes2 bytesIntegerInteger
UntukUntuk tanggaltanggal,, antaraantara 1 Jan 10001 Jan 1000 hinggahingga 3131
DesemberDesember 99999999
#date##date#8 bytes8 bytesDateDate
PressiPressi gandaganda,, bilanganbilangan negatifnegatif --
1.79769313486232E3081.79769313486232E308 hinggahingga --
4.9406564581247E4.9406564581247E--324;324; bilanganbilangan positifpositif daridari
4.9406564581247E4.9406564581247E--324324 hinggahingga
1.79769313486232E3081.79769313486232E308
##8 bytes8 bytesDoubleDouble
UntukUntuk matamata uanguang,, nilainilai antaraantara --
922,337,203,685,477.5808922,337,203,685,477.5808 hinggahingga
922,337,203,685,477.5808922,337,203,685,477.5808
@@8 bytes8 bytesCurrencyCurrency
NilaiNilai 00 sampaisampai 2552551 byte1 byteByteByte
True & falseTrue & false2 bytes2 bytesBooleanBoolean
CatatanCatatanlambanglambangUkuranUkuranJenisJenis
Nizam ©
defaultdefault jenisjenis datadata
KitaKita dapatdapat menyatakanmenyatakan jenisjenis data defaultdata default
ContohContoh::
DefIntDefInt II--NN
BerartiBerarti semuasemua variabelvariabel yangyang mulaimulai dengandengan hurufhuruf
II hinggahingga N (N (kapitalkapital)) merupakanmerupakan integeintege
Keywords:Keywords:
•• DefBoolDefBool DefDblDefDbl
•• DefByteDefByte DefDateDefDate
•• DefIntDefInt DefStrDefStr
•• DefLngDefLng DefObjDefObj
•• DefSngDefSng DefVarDefVar
Nizam ©
UserUser--defined data typesdefined data types
KitaKita dapatdapat mendefinisikanmendefinisikan jenisjenis datadata sendirisendiri
ContohContoh::
TypeType MahasiswaMahasiswa
namanama As StringAs String
nomhsnomhs As IntegerAs Integer
angkatanangkatan As IntegerAs Integer
tglLhrtglLhr As DateAs Date
End TypeEnd Type
Mahasiswa.namaMahasiswa.nama == ““AhmadAhmad MusaMusa””
Mahasiswa.nomhsMahasiswa.nomhs = 22718= 22718
Mahasiswa.angkatanMahasiswa.angkatan = 2002= 2002
Mahasiswa.tglLhrMahasiswa.tglLhr = #01/01/1985#= #01/01/1985#
Nizam ©
VariabelVariabel arrayarray
VariabelVariabel matriksmatriks dandan vektorvektor dapatdapat
dideklarasikandideklarasikan dengandengan variabelvariabel arrayarray
Cara:Cara:
Dim mhs(200) As StringDim mhs(200) As String
mhs(0) =mhs(0) = ““BambangBambang YuwonoYuwono””
mhs(100) =mhs(100) = ““BanowatiBanowati IpitIpit””
CatatanCatatan:: bisabisa Option Base 1Option Base 1 mulaimulai daridari
lariklarik 11
AtauAtau Dim vektor(50 to 100) As DoubleDim vektor(50 to 100) As Double
Dim matriks(1 to 50, 1 to 20)Dim matriks(1 to 50, 1 to 20)
Nizam ©
ArrayArray dinamisdinamis
BilaBila ukuranukuran arrayarray belumbelum diketahuidiketahui,, bisabisa
dideklarasikandideklarasikan sebagaisebagai arrayarray dinamisdinamis
BilaBila dimensinyadimensinya diketahuidiketahui bisabisa dinyatakandinyatakan
kemudiankemudian
DimDim myArraymyArray() As Double() As Double
……
ReDimReDim myArray(105)myArray(105)
ReDimReDim akanakan meme--reinisialisasireinisialisasi nilainilai variabelvariabel dalamdalam
arrayarray tersebuttersebut,, bilabila nilainilai variabelvariabel inginingin taktak didi--
reinisialisasireinisialisasi::
ReDimReDim Preserve myArray(105)Preserve myArray(105)
DimensiDimensi arrayarray bisabisa diketahuidiketahui dengandengan
LBound(namaArrayLBound(namaArray)) indeksindeks bawahbawah
UBound(namaArrayUBound(namaArray)) indeksindeks atasatas Nizam ©
contohcontoh
SubSub PerformCalculationsPerformCalculations()()
DimDim calcValcalcVal() As Double,() As Double, totValtotVal as Integeras Integer
..
..
..
totValtotVal == GetTotalValueGetTotalValue()()
ReDimReDim calcVal(totValcalcVal(totVal))
..
..
End SubEnd Sub
- 10. 10
Nizam ©
konstantakonstanta
KonstantaKonstanta builtbuilt--inin adaada didi dalamdalam ExcelExcel
untukuntuk propertiesproperties dandan methodsmethods berbagiberbagi
objectsobjects
ContohContoh::
ActiveWIndow.WindowStateActiveWIndow.WindowState==xlMaximizedxlMaximized
UserUser--defined constantsdefined constants
Public|PrivatePublic|Private ConstConst NamaKonstantaNamaKonstanta [ As Type] = expression[ As Type] = expression
ContohContoh::
Public ConstPublic Const gravitasigravitasi As SingleAs Single = 9.81= 9.81
Nizam ©
BagianBagian 33
EkspresiEkspresi VBAVBA
Nizam ©
ApaApa yangyang dibicarakandibicarakan??
StrukturStruktur ekspresiekspresi
Operator VBAOperator VBA
BekerjaBekerja dengandengan ekspresiekspresi numeriknumerik
BekerjaBekerja dengandengan ekspresiekspresi textex/string/string
BekerjaBekerja dengandengan ekspresiekspresi logikalogika
BekerjaBekerja dengandengan ekspresiekspresi tanggaltanggal
formatformat
Nizam ©
StrukturStruktur ekspresiekspresi VBAVBA
VariabelVariabel == statemenstatemen tentangtentang variabelvariabel
contohcontoh::
energy = mass * (energy = mass * (speedOfLightspeedOfLight ^ 2)^ 2)
operand <operand <asignmentasignment> operand &> operand &
operatoroperator
OperandOperand harusharus menggunakanmenggunakan jenisjenis variabelvariabel
yangyang kompatibelkompatibel
OperatorOperator harusharus sesuaisesuai dengandengan jenisjenis datadata
Nizam ©
Operator VBAOperator VBA
AritmetikAritmetik
++ tambahtambah/plus/plus
-- kurangkurang/minus/minus
-- negasinegasi
** kalikali
// bagibagi
pembagianpembagian integerinteger
^^ pangkatpangkat
ModMod modulusmodulus 10 Mod 5 = 010 Mod 5 = 0
KonkatenasiKonkatenasi untukuntuk jenisjenis data stringdata string
““SoftSoft”” && ““wareware””
Nizam ©
Operator VBAOperator VBA
PembandingPembanding menghasilkanmenghasilkan nilainilai TrueTrue atauatau FalseFalse
== samasama dengandengan 10=510=5 falsefalse
>> LebihLebih besarbesar daridari
<< LebihLebih kecilkecil daridari
>=>= LebihLebih besarbesar atauatau samasama dengandengan
<=<= LebihLebih kecilkecil atauatau samasama dengandengan
<><> TidakTidak samasama dengandengan
LikeLike miripmirip Jo?nJo?n Like JohnLike John TrueTrue
- 11. 11
Nizam ©
OperatorOperator logikalogika
OperatorOperator logikalogika menghasilkanmenghasilkan nilainilai TrueTrue atauatau
FalseFalse
AndAnd e1 And e2e1 And e2 T if both trueT if both true
EqvEqv e1e1 EqvEqv e2e2 T if both T or both FT if both T or both F
ImpImp e1 Imp e2e1 Imp e2 F if e1 T and e2 FF if e1 T and e2 F
OrOr e1 Or e2e1 Or e2 T if at least one is TT if at least one is T
XorXor e1e1 XorXor e2e2 F if both T or both FF if both T or both F
NotNot NotNot exprexpr T ifT if exprexpr FF
HierarkiHierarki: ^; (: ^; (negasinegasi) ; *) ; * dandan /;/; ; Mod; +; Mod; + dandan --;;
&; comparison; Logical&; comparison; Logical
Nizam ©
FungsiFungsi matematikmatematik
FungsiFungsi matematikamatematika dasardasar::
•• Abs(xAbs(x))
•• Atn(xAtn(x))
•• Cos(xCos(x))
•• Exp(xExp(x))
•• Fix(xFix(x))
•• Hex(xHex(x))
•• Hex$(xHex$(x))
•• Int(xInt(x))
•• Log(xLog(x))
•• Oct(xOct(x))
•• Oct$(xOct$(x))
•• Rnd(xRnd(x))
•• Sgn(xSgn(x))
•• Sin(xSin(x))
•• Sqr(xSqr(x))
•• Tan(xTan(x))
Nizam ©
FungsiFungsi finansialfinansial
DepresiasiDepresiasi sumsum--ofof--year digitsyear digits suatusuatu asetasetSYD(costSYD(cost, salvage, life, period), salvage, life, period)
DepresiasiDepresiasi garisgaris luruslurus suatusuatu asetasetSLN(costSLN(cost, salvage, life), salvage, life)
BungaBunga periodikperiodik pinjamanpinjaman atauatau investasiinvestasiRate(nperRate(nper, pmt,, pmt, pvpv, fv, type, guess), fv, type, guess)
NilaiNilai sekarangsekarang sejumlahsejumlah investasiinvestasiPV(ratePV(rate,, npernper, pmt, fv, type), pmt, fv, type)
PembayaranPembayaran pokokpokok pinjamanpinjaman untukuntuk masamasa
tertentutertentu
PPmt(ratePPmt(rate, per,, per, npernper,, pvpv, fv, type), fv, type)
PembayaranPembayaran periodikperiodik sejumlahsejumlah pinjamanpinjaman atauatau
investasiinvestasi
Pmt(rate,nperPmt(rate,nper,, pvpv, fv, type), fv, type)
NettNett present valuepresent value serangkaianserangkaian investasiinvestasiNPV(rateNPV(rate, value1, value2,, value1, value2,……))
JumlahJumlah periodeperiode investasiinvestasi atauatau pinjamanpinjamanNPer(rateNPer(rate, pmt, p, fv, type), pmt, p, fv, type)
IRR yangIRR yang dimodifikasidimodifikasi untukuntuk cash flowcash flow periodikperiodikMIRR(valuesMIRR(values,, finance_ratefinance_rate,,
reinvest_ratereinvest_rate))
NilaiNilai internal rate of returninternal rate of return serangkaianserangkaian cashcash--
flowsflows
IRR(valuesIRR(values, guess), guess)
PembayaranPembayaran bungabunga untukuntuk masamasa pinjamanpinjaman
tertentutertentu
IPmt(rate,per,nperIPmt(rate,per,nper,, pvpv, fv, type), fv, type)
MenghitungMenghitung nilainilai masamasa depandepan daridari investasiinvestasi atauatau
pinjamanpinjaman
FV(rateFV(rate,, npernper, pmt,, pmt, pvpv, type), type)
MenghitungMenghitung depresiasidepresiasi asetaset dengandengan metodemetode
double declining balancedouble declining balance
DDB(costDDB(cost, salvage, life, period,, salvage, life, period,
factor)factor)
Nizam ©
FungsiFungsi stringstring
DstDst..
karakterkarakter sepanjangsepanjang lengthlength daridari stringstring mulaimulai startstartMid(stringMid(string, start, length), start, length)
MenghilangkanMenghilangkan spasispasiLTrim(stringLTrim(string))
PanjangPanjang karakterkarakterLen(stringLen(string))
PosisiPosisi palingpaling kirikiri daridari stringstring sbgsbg stringstringLeft$(stringLeft$(string, length), length)
PosisiPosisi palingpaling kirikiri daridari stringstring sbgsbg varianvarianLeft(stringLeft(string, length), length)
MengubahMengubah keke hurufhuruf kecilkecil sbgsbg stringstringLCase$(stringLCase$(string))
MengubahMengubah keke hurufhuruf kecilkecil sbgsbg varianvarianLCase(stringLCase(string))
PosisiPosisi bytebyte kejadiankejadian string1string1 dalamdalam string2string2
dihitungdihitung daridari startstart
InStrB(startInStrB(start, string1, string2), string1, string2)
PosisiPosisi karakterkarakter kejadiankejadian string1string1 dalamdalam string2string2
dihitungdihitung daridari startstart
InStr(starInStr(star, string1, string2), string1, string2)
KonversiKonversi expressionexpression keke nilainilai stringstringCStr(expressionCStr(expression))
KarakterKarakter ((sebagaisebagai string)string) untukuntuk kodekode ANSIANSI
charcodecharcode
Chr$(charcodeChr$(charcode))
KarakterKarakter ((sbgsbg varianvarian)) untukuntuk kodekode ANSIANSI charcodecharcodeChr(charcodeChr(charcode))
KarakterKarakter ANSIANSI hurufhuruf pertamapertama stringstringASC(stringASC(string))
Nizam ©
BekerjaBekerja dengandengan ekspresiekspresi logikalogika
Operator AndOperator And
•• Expr1 And Expr2Expr1 And Expr2 TT bilabila keduanyakeduanya TT
Operator OrOperator Or
•• Expr1 Or Expr2Expr1 Or Expr2 TT bilabila salahsalah satusatu TT
OperatorOperator XOrXOr
•• Expr1Expr1 XOrXOr Expr2Expr2 TT bilabila satusatu TT dandan lainnyalainnya FF
OperatorOperator EqvEqv
•• Expr1Expr1 EqvEqv Expr2Expr2 TT bilabila keduanyakeduanya TT atauatau
keuanyakeuanya FF
Operator Imp (Operator Imp (ImplikasiImplikasi))
•• Expr1 Imp Expr2Expr1 Imp Expr2 TT bilabila Expr2 TExpr2 T atauatau keduanyakeduanya
FF Nizam ©
BekerjaBekerja dengandengan tanggaltanggal
TanggalTanggal dalamdalam VBAVBA disimpandisimpan dalamdalam
bentukbentuk rangkaianrangkaian angkaangka,, dengandengan 3131
DesemberDesember 18991899 sebagaisebagai awalawal
((sembarangsembarang)) sehinggasehingga 11 JanuariJanuari 19001900
adalahadalah 1; 3661; 366 adalahadalah 3131 DesemberDesember 1900;1900;
37,98037,980 adalahadalah 2525 DesemberDesember 2003;2003; dstdst..
SaatSaat (jam,(jam, menitmenit,, detikdetik)) dinyatakandinyatakan dalamdalam
pecahanpecahan,, dengandengan 00 adalahadalah tengahtengah malammalam;;
0.50.5 adalahadalah tengahtengah harihari
- 12. 12
Nizam ©
FormatFormat
UntukUntuk memformatmemformat angkaangka/string yang/string yang
munculmuncul bisabisa digunakandigunakan perintahperintah
Format(expresiFormat(expresi, format), format)
ContohContoh::
Format(PemasukanFormat(Pemasukan ––
Pengeluaran,Pengeluaran,””currencycurrency””))
Format(NowFormat(Now,, ““medium timemedium time””))
Format(NoMhsFormat(NoMhs,, ““00000/TS00000/TS””))
Nizam ©
BagianBagian 44
BekerjaBekerja dengandengan ObjectsObjects
Nizam ©
kajiankajian
PengertianPengertian ObjectObject
HirakiHiraki objectobject
BekerjaBekerja dengandengan propertiproperti objectobject
BekerjaBekerja dengandengan metodemetode objectobject
MenanganiMenangani kejadiankejadian objectobject
BekerjaBekerja dengandengan koleksikoleksi objectobject
Browser objectBrowser object
MereferensiMereferensi pustakapustaka objectobject tambahantambahan
MemberikanMemberikan objectobject padapada variabelvariabel
Operator IsOperator Is
BekerjaBekerja dengandengan beberapabeberapa propertiesproperties dandan
methodsmethods
ObjectObject aplikasiaplikasi
Object windowsObject windows Nizam ©
PengertianPengertian objectobject
ObjectObject adalahadalah segalasegala sesuatusesuatu dalamdalam
aplikasiaplikasi Windows yangWindows yang dapatdapat dilihatdilihat
dandan dimanipulasi/diubahdimanipulasi/diubah
ObjectObject bisabisa berupaberupa satusatu objectobject atauatau
kumpulankumpulan ((collectioncollection) object) object
ContohContoh: workbook, worksheet,: workbook, worksheet,
window, cell, range,window, cell, range, gambargambar,, grafikgrafik,,
dsbdsb..
Nizam ©
caracara memanipulasimemanipulasi ojectoject
CaraCara memanipulasimemanipulasi object:object:
•• MengubahMengubah propertiesproperties
•• MengaktivasiMengaktivasi methodmethod yangyang terkaitterkait dengandengan
objectobject
•• MendefinisiMendefinisi prosedurprosedur yangyang dijalankandijalankan saatsaat
suatusuatu eventevent terjaditerjadi
Ilustrasi/analogiIlustrasi/analogi
•• KomputerKomputer:: objectobject
•• MerekMerek,, jenisjenis prosesorprosesor:: propertyproperty
•• MenulisMenulis suratsurat, main game:, main game: methodmethod
•• DihidupkanDihidupkan,, dibukadibuka,, dimatikandimatikan:: eventevent Nizam ©
HirarkiHirarki objectobject
ObjectObject dalamdalam aplikasiaplikasi OfficeOffice memilikimemiliki
hirarkihirarki daridari yang palingyang paling umumumum
hinggahingga yangyang lebihlebih spesifikspesifik;;
Object palingObject paling umumumum: Application: Application
objectobject programprogram ituitu sendirisendiri.. DalamDalam
Excel Application objectExcel Application object memilikimemiliki >>
15 objects15 objects
- 13. 13
Nizam ©
ObjectsObjects didi bawahbawah Application objectApplication object
ContainerContainer untukuntuk fungsifungsi--fungsifungsi
worksheet Excelworksheet Excel
WrosheetFunctioWrosheetFunctio
nn
KoleksiKoleksi daridari semuasemua workbooks yangworkbooks yang
terbukaterbuka
WorkbooksWorkbooksWorkbookWorkbook
KumpulanKumpulan windows yangwindows yang terbukaterbukaWindowsWindowsWindowWindow
KoleksiKoleksi namanama--namanama yangyang adaada dalamdalam
semuasemua workbooks yangworkbooks yang terbukaterbuka
NamesNamesNameName
KotakKotak dialog yang builtdialog yang built--inin dalamdalam
ExcelExcel
DialogsDialogsDialogDialog
SemuaSemua file addfile add--in/in/tambahantambahan yangyang
adaada dalamdalam ExcelExcel
AddInsAddInsAddInAddIn
DescriptionDescriptionCollectionCollectionObjectObject
Nizam ©
BekerjaBekerja dengandengan object propertiesobject properties
SintaksSintaks:: Object.PropertyObject.Property
ContohContoh:: Application.ActiveWindowApplication.ActiveWindow
MasalahMasalah::
•• AdaAda beberapabeberapa propertespropertes yangyang jugajuga
merupakanmerupakan objectobject
Nizam ©
Properties .
ActiveMenuBar
ActiveWindow
Calculation
Etc. Properties .
ActiveCell
Caption
DisplayGridlines
Etc.
Application Object
Window Object
Properties .
ColumnWidth
Font
Formula
Etc.
Range Object
Properties .
Italic
Name
Size
Etc.
Font Object
Application.ActiveWindow.ActiveCell.Font.Italic
sama dengan
ActiveCell.Font.Italic Nizam ©
MenetapkanMenetapkan nilainilai propertyproperty
SintaxSintax:: Object.PropertyObject.Property == valuevalue
ValueValue berupaberupa nilainilai pernyataanpernyataan untukuntuk
mensetmenset property,property, bisabisa berupaberupa ::
•• NumerikNumerik:: ActiveCell.Font.SizeActiveCell.Font.Size = 14= 14
•• String:String: ActiveCell.Font.NameActiveCell.Font.Name == ““ArialArial””
•• LogikaLogika:: ActiveCell.Font.ItalicActiveCell.Font.Italic = True= True
NilaiNilai propertyproperty dapatdapat dicaridicari dengandengan
•• variabelvariabel == Object.PropertyObject.Property
Nizam ©
BekerjaBekerja dengandengan methodsmethods
MethodMethod menggambarkanmenggambarkan apaapa yangyang
dilakukandilakukan object;object; contohcontoh:: metodemetode
sort, pivot table,sort, pivot table, simpansimpan,, bukabuka,, dsbdsb..
SintaxSintax:: Object.Method(arg1, arg2,Object.Method(arg1, arg2,……))
contohcontoh:: ActiveWorkBook.SaveActiveWorkBook.Save
ActiveWorkBook.Close(ActiveWorkBook.Close(SaveChangesSaveChanges,,
fileNamefileName,, RouteWBRouteWB))
Nizam ©
MengelolaMengelola object eventsobject events
EventEvent adalahadalah segalasegala sesuatusesuatu yangyang
terjaditerjadi padapada object,object, sepertiseperti::
membukamembuka workbookworkbook adalahadalah eventevent
padapada workbookworkbook
ResponsRespons terhadapterhadap eventevent yangyang terjaditerjadi
disebutdisebut event handlersevent handlers
Event handlersEvent handlers akanakan dijalankandijalankan bilabila
eventevent terjaditerjadi padapada suatusuatu objectobject
- 14. 14
Nizam ©
ContohContoh event handlerevent handler
' prosedur pemberian salam saat workbook dibuka' prosedur pemberian salam saat workbook dibuka
' meminta nama pengguna' meminta nama pengguna
Private Sub Workbook_Open()Private Sub Workbook_Open() ‘‘ eventevent membukamembuka
WorkbookWorkbook
Dim pesan, judul, Default, MyValueDim pesan, judul, Default, MyValue
pesan = "Hi, siapa nama anda? " ' minta inputpesan = "Hi, siapa nama anda? " ' minta input
nama.nama.
judul = "Salam pembuka" ' Set judul.judul = "Salam pembuka" ' Set judul.
Default = "tanpa nama" ' Set default.Default = "tanpa nama" ' Set default.
' Display pesan, judul, dan nilai default.' Display pesan, judul, dan nilai default.
MyValue = InputBox(pesan, judul, Default)MyValue = InputBox(pesan, judul, Default)
MsgBox ("Assalamu'alaikum " + MyValue)MsgBox ("Assalamu'alaikum " + MyValue)
End SubEnd Sub Nizam ©
MengelolaMengelola eventevent
ContohContoh::
' prosedur pemberian salam saat workbook dibuka' prosedur pemberian salam saat workbook dibuka
' meminta nama pengguna' meminta nama pengguna
Private Sub Workbook_Open()Private Sub Workbook_Open() ‘‘eventevent
membukamembuka wbwb
Dim pesan, judul, Default, MyValueDim pesan, judul, Default, MyValue
pesan = "Hi, siapa nama anda? "pesan = "Hi, siapa nama anda? " ' minta' minta
input nama.input nama.
judul = "Salam pembuka"judul = "Salam pembuka" ' Set' Set
judul.judul.
Default = "tanpa nama"Default = "tanpa nama" ' Set default.' Set default.
' Display pesan, judul, dan nilai default.' Display pesan, judul, dan nilai default.
MyValue = InputBox(pesan, judul, Default)MyValue = InputBox(pesan, judul, Default)
MsgBox ("Assalamu'alaikum " + MyValue)MsgBox ("Assalamu'alaikum " + MyValue)
End SuEnd Subb
Nizam ©
BekerjaBekerja dengandengan koleksikoleksi objectobject
CollectionCollection adalahadalah himpunanhimpunan objects yangobjects yang serupaserupa;;
sepertiseperti WorkBooksWorkBooks CollectionCollection merupakanmerupakan koleksikoleksi
workbook yangworkbook yang terbukaterbuka
CollectionCollection jugajuga merupakanmerupakan objectobject sehinggasehingga
memilikimemiliki propertiesproperties dandan methodsmethods yangyang bisabisa
dimanipulasidimanipulasi
AnggotaAnggota collectioncollection disebutdisebut elementelement yangyang bisabisa
diaksesdiakses dengandengan namanyanamanya atauatau dengandengan indexindex
ContohContoh::
Workbooks(Workbooks(““Budget.xlsBudget.xls””).Close).Close
ActiveSheet.Picture(1).CopyActiveSheet.Picture(1).Copy
KalauKalau taktak diberidiberi index,index, diasumsikandiasumsikan semuasemua
koleksikoleksi diperlakukandiperlakukan dengandengan method yangmethod yang samasama
Nizam ©
Object browserObject browser
Libraries
dan Project
Template
Code
Properties
Methods
Events
Nizam ©
BekerjaBekerja dengandengan object browserobject browser
MenunjukkanMenunjukkan
objectsobjects yangyang adaada
padapada satusatu library,library,
properties,properties,
methodsmethods dandan
eventsevents yangyang terkaitterkait
dengandengan objectobject
Pencari object
Nizam ©
MemasukkanMemasukkan objectobject dalamdalam variabelvariabel
SintaxSintax:: variableNamevariableName == ObjectNameObjectName
DimDim budgetSheetbudgetSheet As ObjectAs Object
SetSet budgetSheetbudgetSheet =_=_
Workbooks(Workbooks(““Budget.xlsBudget.xls””).Worksheets().Worksheets(““20032003
Budget)Budget)
LebihLebih baikbaik::
DimDim budgetSheetbudgetSheet As WorksheetAs Worksheet
SetSet budgetSheetbudgetSheet =_=_
Workbooks(Workbooks(““Budget.xlsBudget.xls””).Worksheets().Worksheets(““20032003
Budget)Budget)
- 15. 15
Nizam ©
Operator IsOperator Is
KitaKita kadangkadang perluperlu membandingkanmembandingkan
beberapabeberapa objects, VBAobjects, VBA menyediakanmenyediakan
operator Isoperator Is untukuntuk membandingkanmembandingkan
duadua objectsobjects
HasilHasil == Object1Object1 IsIs Object2Object2
•• Object1Object1 dandan Object2Object2 adalahadalah objectobject atauatau
variabelvariabel,, bilabila samasama,, hasilhasil akanakan TrueTrue,, bilabila
bedabeda akanakan FalseFalse
Nizam ©
BekerjaBekerja dengandengan propertiesproperties dandan methodsmethods
yangyang banyakbanyak (1/3)(1/3)
ContohContoh::
SubSub FormatRangeFormatRange()()
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).Style =).Style = ““CurrencyCurrency””
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).WrapText= True).WrapText= True
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).Font.Size = 16).Font.Size = 16
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).Font.Bold = True).Font.Bold = True
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).Font.Color = RGB(255,).Font.Color = RGB(255,
0, 0)0, 0)
Worksheets(Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””).Font.Name =).Font.Name =
““ArialArial””
End SubEnd Sub
Nizam ©
BekerjaBekerja dengandengan propertiesproperties dandan methodsmethods
yangyang banyakbanyak (2/3)(2/3)
ContohContoh yangyang lebihlebih baikbaik::
Sub FormatRange2()Sub FormatRange2()
With Worksheets(With Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””))
.Style =.Style = ““CurrencyCurrency””
.WrapText= True.WrapText= True
.Font.Size = 16.Font.Size = 16
.Font.Bold = True.Font.Bold = True
.Font.Color = RGB(255, 0, 0).Font.Color = RGB(255, 0, 0)
.Font.Name =.Font.Name = ““ArialArial””
End WithEnd With
End SubEnd Sub
Nizam ©
BekerjaBekerja dengandengan propertiesproperties dandan methodsmethods
yangyang banyakbanyak (3/3)(3/3)
ContohContoh yangyang lebihlebih baikbaik lagilagi::
Sub FormatRange3()Sub FormatRange3()
With Worksheets(With Worksheets(““Sheet1Sheet1””).Range().Range(““B2:B5B2:B5””))
.Style =.Style = ““CurrencyCurrency””
.WrapText= True.WrapText= True
With .FontWith .Font
.Size = 16.Size = 16
.Bold = True.Bold = True
.Color = RGB(255, 0, 0).Color = RGB(255, 0, 0)
.Name =.Name = ““ArialArial””
End WithEnd With
End WithEnd With
End SubEnd Sub
Nizam ©
ObjectObject aplikasiaplikasi
Application ObjectApplication Object merupakanmerupakan containercontainer yangyang
berisiberisi semuasemua ojectoject dalamdalam aplikasiaplikasi yangyang
dijalankandijalankan; object; object iniini memilikimemiliki beberapabeberapa
propertiesproperties dandan methodsmethods yangyang banyakbanyak gunanyagunanya
BeberapaBeberapa contohcontoh
•• Application.ActivePrinterApplication.ActivePrinter:: mengembalikanmengembalikan himpunanhimpunan
printer driver yangprinter driver yang tersediatersedia
•• Application.ActiveWindowApplication.ActiveWindow:: mengembalikanmengembalikan window yangwindow yang
sedangsedang aktifaktif
•• Application.CaptionApplication.Caption:: mengembalikanmengembalikan juduljudul aplikasiaplikasi
•• Application.DialogsApplication.Dialogs: built: built--in dialog yangin dialog yang adaada dlmdlm aplikasiaplikasi
•• Application.VisibleApplication.Visible:: mengaturmengatur aplikasiaplikasi terlihat/tidakterlihat/tidak
•• Application.WidthApplication.Width:: lebarlebar windowwindow aplikasiaplikasi
•• Application.WindowsApplication.Windows:: kumpulankumpulan windowwindow aplikasiaplikasi yangyang
aktifaktif
Nizam ©
MethodsMethods padapada Application ObjectApplication Object
Application objectApplication object memilikimemiliki beberapabeberapa
methods,methods, diantaranyadiantaranya
•• Application.HelpApplication.Help:: mendisplaymendisplay sistemsistem
HelpHelp aplikasiaplikasi
•• Application.QuitApplication.Quit:: keluarkeluar daridari aplikasiaplikasi
•• Application.RepeatApplication.Repeat:: mengulangmengulang kegiatankegiatan
yangyang barubaru sajasaja dilakukandilakukan
•• Application.EnableCancelKeyApplication.EnableCancelKey
- 16. 16
Nizam ©
Object WindowObject Window
MenspesifikasiMenspesifikasi object windowobject window
•• DenganDengan indeksindeks,, atauatau dengandengan
menuliskanmenuliskan namanyanamanya
Windows(1)Windows(1)
Windows(Windows(““Nilai.xlsNilai.xls””),), atauatau
ActiveWindowActiveWindow window yangwindow yang saatsaat iniini
sedangsedang aktifaktif
MembukaMembuka windowwindow barubaru
•• Window.NewWindowWindow.NewWindow
Nizam ©
Object WindowObject Window
BeberapaBeberapa properties object windowproperties object window
•• Window.CaptionWindow.Caption Window.VisibleWindow.Visible
•• Window.HeightWindow.Height Window.WidthWindow.Width
•• Window.LeftWindow.Left Window.WindowNumberWindow.WindowNumber
•• Window.TopWindow.Top Window.WindowStateWindow.WindowState
•• Window.UsableHeightWindow.UsableHeight
•• Window.UsableWidthWindow.UsableWidth
BeberapaBeberapa methods object windowmethods object window
•• Window.ActivateWindow.Activate
Windows(Windows(““Nilai.xlsNilai.xls””).Activate).Activate
•• Window.CloseWindow.Close
•• Window.LargeScroll(Down,Up,ToRight,ToLeftWindow.LargeScroll(Down,Up,ToRight,ToLeft))
•• Window.SmallScroll(Down,Up,ToRight,ToLeftWindow.SmallScroll(Down,Up,ToRight,ToLeft))
Nizam ©
BagianBagian 55
MengendalikanMengendalikan aluralur programprogram
Nizam ©
ApaApa yangyang akanakan dibahasdibahas??
PengendalianPengendalian aluralur programprogram
IfIf……ThenThen
IfIf……ThenThen……ElseElse
MembuatMembuat keputusankeputusan gandaganda
FungsiFungsi yangyang mengambilmengambil keputusankeputusan
LoopsLoops
DoDo……LoopLoop
ForFor……NextNext
For EachFor Each……NextNext
ExitExit
Nizam ©
PengendalianPengendalian aluralur programprogram
AlurAlur programprogram dikendalikandikendalikan dengandengan
logikalogika pengambilanpengambilan keputusankeputusan (True(True
atauatau False)False)
If..ThenIf..Then
•• Langsung/sebarisLangsung/sebaris
IfIf conditioncondition ThenThen statementstatement
•• DenganDengan blokblok
IfIf conditioncondition ThenThen
[[statementsstatements]]
End IfEnd If
Nizam ©
PengendalianPengendalian aluralur programprogram
IfIf……ThenThen……ElseElse
•• SintaksSintaks
IfIf conditioncondition ThenThen
[[TrueStatementsTrueStatements]]
ElseElse
[[FalseStatementsFalseStatements]]
End IfEnd If
ContohContoh::
FunctionFunction FutureValue(RateFutureValue(Rate,, NperNper, Pmt, Frequency), Pmt, Frequency)
If Frequency =If Frequency = ““MonthlyMonthly”” ThenThen
FutureValueFutureValue == FV(RateFV(Rate / 12,/ 12, NperNper * 12, Pmt / 12)* 12, Pmt / 12) ‘‘ freqfreq
monthlymonthly
ElseElse
FutureValueFutureValue == FV(RateFV(Rate / 4,/ 4, NPerNPer * 4, Pmt / 4)* 4, Pmt / 4) ‘‘ freqfreq
quarterlyquarterly
End IfEnd If
End FunctionEnd Function
- 17. 17
Nizam ©
KeputusanKeputusan gandaganda
PenggunaanPenggunaan operator Andoperator And dandan OrOr
IfIf condition1condition1 AndAnd condition2condition2 ThenThen
[[TrueStatementsTrueStatements]]
ElseElse
[[FalseStatementsFalseStatements]]
End IfEnd If
ContohContoh::
Function FutureValue2(Rate,Function FutureValue2(Rate, NperNper, Pmt, Frequency), Pmt, Frequency)
If Frequency <>If Frequency <> ““MonthlyMonthly”” And Frequency <>And Frequency <> ““QuarterlyQuarterly”” ThenThen
MsgBoxMsgBox ““TheThe FrequenyFrequeny argument must be eitherargument must be either ““ && “””“””MonthlyMonthly””””
or_or_
“”“”QuarterlyQuarterly””””!!””
Exit FunctionExit Function
End IfEnd If
If Frequency =If Frequency = ““MonthlyMonthly”” ThenThen
FutureValue2 =FutureValue2 = FV(RateFV(Rate / 12,/ 12, NperNper * 12, Pmt / 12)* 12, Pmt / 12) ‘‘ freq monthlyfreq monthly
ElseElse
FutureValue2 =FutureValue2 = FV(RateFV(Rate / 4,/ 4, NPerNPer * 4, Pmt / 4)* 4, Pmt / 4) ‘‘ freq quarterlyfreq quarterly
End IfEnd If
End FunctionEnd Function Nizam ©
KeputusanKeputusan gandaganda
PenggunaanPenggunaan statement multi Ifstatement multi If……ThenThen……ElseElse
IfIf condition1condition1 ThenThen
[[condition1condition1 TrueStatementsTrueStatements]]
ElseIfElseIf condition2condition2
[[condition2condition2 TrueStatementsTrueStatements]]
<etc.><etc.>
ElseElse
[[FalseStatementsFalseStatements]]
End IfEnd If
ContohContoh::
Function FutureValue3(Rate,Function FutureValue3(Rate, NperNper, Pmt, Frequency), Pmt, Frequency)
If Frequency =If Frequency = ““MonthlyMonthly”” ThenThen
FutureValue3 =FutureValue3 = FV(RateFV(Rate / 12,/ 12, NperNper * 12, Pmt / 12)* 12, Pmt / 12) ‘‘ freq monthlyfreq monthly
ElseIfElseIf Frequency =Frequency = ““QuarterlyQuarterly”” ThenThen
FutureValue3 =FutureValue3 = FV(RateFV(Rate / 4,/ 4, NPerNPer * 4, Pmt / 4)* 4, Pmt / 4) ‘‘ freq quarterlyfreq quarterly
ElseElse
MsgBoxMsgBox ““The Frequency argument must be eitherThe Frequency argument must be either ““ & _& _
“””“””MonthlyMonthly”””” oror “”“”QuarterlyQuarterly””””!!””
End IfEnd If
End FunctionEnd Function
Nizam ©
KeputusanKeputusan gandaganda
PenggunaanPenggunaan Select CaseSelect Case
Select CaseSelect Case TestExpressionTestExpression
CaseCase FirstCaseListFirstCaseList
[[FirstStatementsFirstStatements]]
CaseCase SecondCaseListSecondCaseList
[[SecondStatementsSecondStatements]]
<etc.><etc.>
CaseCase ElseElse
[[ElseStatementsElseStatements]]
End SelectEnd Select
ContohContoh::
Function FutureValue4(Rate,Function FutureValue4(Rate, NperNper, Pmt, Frequency), Pmt, Frequency)
Select Case FrequencySelect Case Frequency
CaseCase ““MonthlyMonthly””
FutureValue4 =FutureValue4 = FV(RateFV(Rate / 12,/ 12, NperNper * 12, Pmt / 12)* 12, Pmt / 12) ‘‘ freqfreq
monthlymonthly
CaseCase ““QuarterlyQuarterly””
FutureValue3 =FutureValue3 = FV(RateFV(Rate / 4,/ 4, NPerNPer * 4, Pmt / 4)* 4, Pmt / 4) ‘‘ freqfreq
quarterlyquarterly
Case ElseCase Else
MsgBoxMsgBox ““The Frequency argument must be eitherThe Frequency argument must be either ““ & _& _
“””“””MonthlyMonthly”””” oror “”“”QuarterlyQuarterly””””!!””
End SelectEnd Select
End FunctionEnd Function
Nizam ©
KeputusanKeputusan gandaganda
ContohContoh lain:lain: mengubahmengubah nilainilai angkaangka keke hurufhuruf
FunctionFunction nilHuruf(nilAngkanilHuruf(nilAngka As Integer) As StringAs Integer) As String
Select CaseSelect Case nilAngkanilAngka
Case Is < 0Case Is < 0
nilHurufnilHuruf == ““SalahSalah datadata nilainilai kurangkurang daridari 0!0!””
Case Is < 50Case Is < 50
nilHurufnilHuruf == ““FF””
Case Is < 60Case Is < 60
nilHurufnilHuruf == ““DD””
Case Is < 70Case Is < 70
nilHurufnilHuruf == ““CC””
Case Is < 80Case Is < 80
nilHurufnilHuruf == ““BB””
Case Is <= 100Case Is <= 100
nilHurufnilHuruf == ““AA””
Case ElseCase Else
nilHurufnilHuruf == ““SalahSalah!! NilaiNilai lebihlebih daridari 100!100!””
End SelectEnd Select
End FunctionEnd Function
Nizam ©
FungsiFungsi pengambilpengambil keputusankeputusan
StatementStatement IIfIIf (Inline If)(Inline If)
•• SintaksSintaks:: IIfIIf ((conditioncondition,, TrueResultTrueResult,, FalseResultFalseResult))
FunctionFunction ProsesorCacatProsesorCacat() As Boolean() As Boolean
ProsesorCacatProsesorCacat = IIf((4195835= IIf((4195835 –– (4195835/3145727) * 3145727),(4195835/3145727) * 3145727),
True, False)True, False)
End FunctionEnd Function
FungsiFungsi ChooseChoose
•• SintaksSintaks:: Choose(indexChoose(index, value1, value2,, value1, value2, ……))
FunctionFunction NamaHari(noHariNamaHari(noHari As Integer) As StringAs Integer) As String
NamaHariNamaHari == Choose(noHariChoose(noHari,, ““AhadAhad””,, ““SeninSenin””,, ““SelasaSelasa””,, ““RabuRabu””,, ““KamisKamis””,,
““JumatJumat””,_,_ ““SabtuSabtu””))
End FunctionEnd Function
Nizam ©
FungsiFungsi pengambilpengambil keputusankeputusan
FungsiFungsi SwitchSwitch
•• SintaksSintaks: Switch(: Switch(expr1, value1, value2expr1, value1, value2,, ……))
Function NilHuruf2(nilAngka As Integer) As StringFunction NilHuruf2(nilAngka As Integer) As String
NilHuruf2 =NilHuruf2 = Switch(nilAngkaSwitch(nilAngka < 0< 0 ““Error <0Error <0””,_,_
nilAngkanilAngka < 50,< 50, ““FF””,_,_
nilAngkanilAngka < 60,< 60, ““DD””,_,_
nilAngkanilAngka < 70,< 70, ““CC””,_,_
nilAngkanilAngka < 80,< 80, ““BB””,_,_
nilAngkanilAngka <= 100,<= 100, ““AA””,_,_
nilAngkanilAngka > 100,> 100, ““Error > 100Error > 100””))
End FunctionEnd Function
- 18. 18
Nizam ©
PengulanganPengulangan -- looploop
StrukturStruktur DoDo……LoopLoop
SintaksSintaks::
•• Do WhileDo While conditioncondition ‘‘ checkcheck duludulu barubaru looploop
[statement][statement] ‘‘ dilakukandilakukan selamaselama kondisikondisi TT
LoopLoop
•• DoDo ‘‘ lakukanlakukan duludulu barubaru checkcheck
[statement][statement]
Loop WhileLoop While conditioncondition ‘‘ diulangdiulang bilabila kondisikondisi TT
•• Do UntilDo Until conditioncondition ‘‘ checkcheck duludulu barubaru looploop
[[statemntstatemnt]] ‘‘ dilakukandilakukan selamaselama kondisikondisi FF
LoopLoop
•• DoDo ‘‘ dilakukandilakukan duludulu barubaru checkcheck
[statement][statement]
Loop UntilLoop Until conditioncondition ‘‘ diulangdiulang bilabila kondisikondisi masihmasih FF
Nizam ©
PengulanganPengulangan -- looploop
ContohContoh
SubSub BigNumbersBigNumbers()()
DimDim rowNumrowNum As Integer,As Integer, colNumcolNum As Integer,As Integer, currCellcurrCell AsAs
RangeRange
rowNumrowNum == ActiveCell.RowActiveCell.Row
colNumcolNum == ActiveCell.ColumnActiveCell.Column
SetSet currCellcurrCell == ActiveSheet.Cells(rowNumActiveSheet.Cells(rowNum,, ColNumColNum))
Do WhileDo While currCell.ValuecurrCell.Value <><> “”“”
IfIf IsNumeric(currCell.ValueIsNumeric(currCell.Value) Then) Then
IfIf currCell.ValuecurrCell.Value >= 1000 Then>= 1000 Then
currCell.Font.ColorcurrCell.Font.Color == VBAColor(VBAColor(““magentamagenta””))
End IfEnd If
rowNumrowNum == rowNumrowNum + 1+ 1
SetSet currCellcurrCell == ActiveSheet.Cells(rowNumActiveSheet.Cells(rowNum,, colNumcolNum))
LoopLoop
End SubEnd Sub
Nizam ©
ForFor …… NextNext
LoopLoop dengandengan ForFor …… NextNext
SintaksSintaks: For: For counter = startcounter = start ToTo end [end [inkremeninkremen]]
[statement][statement]
Next [Next [countercounter]]
SubSub LoopTestLoopTest()()
Dim counter As IntegerDim counter As Integer
For counter = 1 To 10For counter = 1 To 10
Application.StatusBarApplication.StatusBar == ““Counter value:Counter value: ““ &&
countercounter
Application.WaitApplication.Wait Now +Now +
TimeValue(TimeValue(““00:00:0100:00:01””))
Next counterNext counter
Application.StatusBarApplication.StatusBar = False= False
End SubEnd Sub Nizam ©
For EachFor Each …… NextNext
LoopLoop dengandengan For EachFor Each …… NextNext
SintaksSintaks: For Each: For Each elementelement InIn groupgroup
[statement][statement]
Next [Next [elementelement]]
SubSub convertProperconvertProper()()
DimDim cellObjectcellObject As ObjectAs Object
For EachFor Each cellObjectcellObject In SelectionIn Selection
cellObject.FormulacellObject.Formula ==
Application.Proper(cellObjectApplication.Proper(cellObject))
NextNext
End SubEnd Sub
Nizam ©
PenggunaanPenggunaan Exit ForExit For atauatau Exit DoExit Do
KadangKadang kitakita perluperlu keluarkeluar daridari LoopLoop
CaranyaCaranya:: gunakangunakan Exit ForExit For atauatau Exit DoExit Do
Sub BigNumbers2()Sub BigNumbers2()
DimDim rowNumrowNum As Integer,As Integer, colNumcolNum As Integer,As Integer, currCellcurrCell As RangeAs Range
rowNumrowNum == ActiveCell.RowActiveCell.Row
colNumcolNum == ActiveCell.ColumnActiveCell.Column
SetSet currCellcurrCell == ActiveSheet.Cells(rowNumActiveSheet.Cells(rowNum,, ColNumColNum))
Do WhileDo While currCell.ValuecurrCell.Value <><> ““ ””
IfIf IsNumeric(currCell.ValueIsNumeric(currCell.Value) Then) Then
IfIf currCell.ValuecurrCell.Value >= 1000 Then>= 1000 Then
currCell.Font.ColorcurrCell.Font.Color == VBAColor(VBAColor(““magentamagenta””))
End IfEnd If
ElseElse
Exit DoExit Do ‘‘ bilabila bukanbukan angkaangka keluarkeluar daridari
Do loopDo loop
End IfEnd If
rowNumrowNum == rowNumrowNum + 1+ 1
SetSet currCellcurrCell == ActiveSheet.Cells(rowNumActiveSheet.Cells(rowNum,, colNumcolNum))
LoopLoop
End SubEnd Sub
Nizam ©
TugasTugas -- 11
SalahSalah satusatu caracara untukuntuk mencarimencari akarakar
persamaanpersamaan ff adalahadalah dengandengan metodemetode
NewtonNewton
•• BilaBila f(xf(x) =) = 00 adalahadalah fungsifungsi yangyang akanakan dicaridicari
akarnyaakarnya,, dandan xxnn adalahadalah perkiraanperkiraan akarakar f(xf(x))
makamaka pendekatanpendekatan nilainilai akarakar persamaanpersamaan
berikutnyaberikutnya dapatdapat dicaridicari dengandengan rumusrumus
xxn+1n+1 == xxnn –– f(xf(xnn )/)/ff’’(x(xnn))
DiDi manamana ff’’(x(xnn)) adalahadalah nilainilai turunanturunan fungsifungsi didi xxnn
TuliskanTuliskan prosedurprosedur dalamdalam VBAVBA untukuntuk
mencarimencari akarakar fungsifungsi f(xf(x) = 0) = 0 yangyang
merupakanmerupakan fungsifungsi yangyang dapatdapat
didefinisikandidefinisikan dalamdalam program (userprogram (user--
defined)defined)
- 19. 19
Nizam ©
TugasTugas -- 22
BuatBuat sekumpulansekumpulan programprogram dandan
fungsifungsi untukuntuk melakukanmelakukan operasioperasi
bilanganbilangan komplexkomplex:: penjumlahanpenjumlahan,,
penguranganpengurangan,, perkalianperkalian,, pembagianpembagian
Nizam ©
TugasTugas 33
BuatBuat satusatu programprogram aplikasiaplikasi VBA excelVBA excel
untukuntuk bidangbidang teknikteknik
sipil/fisika/mekanikasipil/fisika/mekanika