Professional Documents
Culture Documents
Rumus
Nilai logika (boolean – true-
true-false) Names
Beberapa tips Functions
• Mengisi data pada range: isikan data pada active cell,
tekan ctrl+Enter Shapes
• Mengcopy ke bawah:
bawah: drag pojok selection
Charts
• Mengcopy ke bawah dgn increment: drag pojok
Macros
selection sambil tekan ctrl
• Untuk penulisan teks yang panjang,
panjang, ganti baris dengan
alt+enter Database access Æ filter
• Untuk menulis pecahan tulis 0 <spasi
<spasi>> pecahan
• Tanggal hari ini:
ini: ctrl+; Nizam © Nizam ©
• Jam saat ini:
ini: ctrl+shift+;
ctrl+shift+;
1
Analysis tools cell
Outline Relative A1
Automatic subtotals Absolute $A$1
Auditing =[data.xls]Sheet2[A2]+1
Solver Referensi dengan nama : insertÆ
insertÆ
Add-
Add-ins nameÆ
nameÆ create
Nizam © Nizam ©
Nizam © Nizam ©
2
kenapa IDE – integrated development environment
Object browser
Module window
Procedure list
Object list
Prinsip prmrograman berbasis object
3
Membuat dan menjalankan macro Menulis program
Tools Æ macro Æ record macro ToolsÆ
ToolsÆmacroÆ
macroÆvisual basic editor
Lakukan prosedur-
prosedur-prosedur dan atau
perubahan properties pada Click tombol VBE
worksheet
Pindah dari VBE ke aplikasi Æ
Stop macro recording
alt+F11
Edit macro untuk memberbaiki dan
Tuliskan program (function atau
mengubah hasil rekaman
Menjalankan:
procedure)
Menjalankan:
• Dengan shortcut, atau • Sub
Baris program
• ToolsÆ
ToolsÆ macroÆ
macroÆ runÆ
runÆ pilih namaNizam
macro
©
Nizam ©
• End sub
Nizam © Nizam ©
4
Membuat prosedur Memanfaatkan intellisense
Contoh:
Contoh: perhitungan bunga Setiap oject dalam excel memiliki
properties dan methods,
Sub EnterLoanData()
EnterLoanData()
Sub InputDataPinjaman()
InputDataPinjaman()
Untuk memanipulasi obyek dalam
Range("bunga").Value = 0.08
program VBA, kita bisa memanfaatkan
intellisense
Range("lama").Value = 10
Range("pinjaman").Value = 100000000 Caranya:
Caranya:
Range("bayar").Value = • Tuliskan nama obyek dilanjutkan dengan titik
"=PMT(bunga/12,lama*12,pinjaman)" (.) Æ akan keluar properties dari obyek
tersebut
End Sub
• Contoh:
Contoh: application.
Penggunaan:
Penggunaan: toolsÆ
toolsÆmacroÆ
macroÆ pilih nama • Kalau kita tekan <esc> intellisense tak akan
sub InputDataPinjaman Æ run Nizam © muncul lagi untuk obyek yang sama,
sama, untuk
Nizam ©
memunculkan lagiÆ
lagiÆ tekan Ctrl+J
Nizam © Nizam ©
menyimpan file.BAS
Tekan Open
Nizam © Nizam ©
5
Melindungi program
Program dapat dilindungi dengan
password
Tools|ProjectName Properties Æ
Bagian 2
dialog box, pilih Protection
Isikan password untuk melindungi
Variabel dan konstanta
program
OK
Nizam © Nizam ©
6
Lingkup prosedur Deklarasi implisit dan eksplisit
Variabel hanya bisa diakses oleh pernyataan-
dalam prosedur yang sama
pernyataan-pernyataan Pada contoh 2, variabel pesan sebetulnya
Sub Procedure1()
tak dikenal,
dikenal, tetapi ketika dijalankan tetap
Dim pesan memberi hasil,
hasil, dalam hal ini <blank>. Ini
‘ semua pernyataan di dalam prosedur ini dikarenakan VBA mengenal deklarasi
‘ dapat mengakses variabel ‘pesan’
pesan’ implisit (semua variabel otomatis diberi
pesan = “ Saya dalam lingkup”
lingkup” harga <blank>, meski tak dikenal)
dikenal)
MsgBox pesan
End Sub
Kondisi semacam ini kurang baik dalam
Sub Procedure2()
pemrograman,
pemrograman, sebaiknya dinyatakan
‘ pernyataan di dalam prosedur ini bahwa semua variabel harus
‘ tak dapat mengakses variabel ‘pesan’
pesan’ dideklarasikan agar tak terjadi kesalahan
MsgBox pesan ‘ variabel pesan tak dikenal dalam
prosedur ini
Untuk menghindari
End Sub • Option Explicit
Nizam © Nizam ©
Nizam © Nizam ©
7
Mengirim variabel berdasar referensi Mengirim variabel berdasar nilai
Contoh:
Contoh: Contoh:
Contoh:
Sub procedure3() Sub procedure5()
Dim pesan Dim pesan
pesan = "Pesan asli!" pesan = "Pesan asli!"
procedure4 pesan procedure6 pesan
MsgBox pesan MsgBox pesan
End Sub End Sub
Sub procedure4(kiriman
procedure4(kiriman)) Sub procedure6(ByVal pesan)
MsgBox kiriman MsgBox pesan
kiriman = "pesan telah sampai!" pesan = "terimakasih atas kirimannya!"
End Sub End Sub
Bila procedure3 dijalankan,
dijalankan, mula-
mula-mula pesan berisi “Pesan Bila procedure5 dijalankan,
dijalankan, variabel pesan akan tetap
asli!
asli!” kemudian berisi “pesan telah sampai!
sampai!” berisi “Pesan asli!
asli!” karena yang dikirim hanya nilainya
(ByVal)
ByVal )
Nizam © Nizam ©
8
Jenis data variabel
Jenis Ukuran lambang Catatan default jenis data
Boolean 2 bytes True & false
9
konstanta
Konstanta built-
built-inÆ
inÆ ada di dalam Excel
untuk properties dan methods berbagi
objects Bagian 3
Contoh:
Contoh:
ActiveWIndow.WindowState=
ActiveWIndow.WindowState=xlMaximized
User-
User-defined constants
Public|Private Const NamaKonstanta [ As Type] = expression Ekspresi VBA
Contoh:
Contoh:
Public Const gravitasi As Single = 9.81
Nizam © Nizam ©
Nizam © Nizam ©
10
Operator logika Fungsi matematik
Operator logika menghasilkan nilai True atau Fungsi matematika dasar:
dasar:
• Abs(x)
Abs(x)
False • Atn(x)
Atn(x)
And e1 And e2 T if both true • Cos(x)
Cos(x)
• Exp(x)
Exp(x)
Eqv e1 Eqv e2 T if both T or both F • Fix(x)
Fix(x)
Imp e1 Imp e2 F if e1 T and e2 F • Hex(x)
Hex(x)
Or e1 Or e2 T if at least one is T • Hex$(x)
Hex$(x)
• Int(x)
Int(x)
Xor e1 Xor e2 F if both T or both F • Log(x)
Log(x)
Not Not expr T if expr F • Oct(x)
Oct(x)
• Oct$(x)
Oct$(x)
• Rnd(x)
Rnd(x)
Hierarki:
Hierarki: ^; (negasi
(negasi)) ; * dan /; \; Mod; + dan -; •
•
Sgn(x)
Sgn(x)
Sin(x)
Sin(x)
&; comparison; Logical • Sqr(x)
Sqr(x)
• Tan(x)
Tan(x)
Nizam © Nizam ©
11
Format
Untuk memformat angka/string
angka/string yang
muncul bisa digunakan perintah
Format(expresi,
Format(expresi, format) Bagian 4
Contoh:
Contoh:
Format(Pemasukan –
Pengeluaran,”
Pengeluaran,”currency”
currency”) Bekerja dengan Objects
Format(Now,
Format(Now, “medium time”
time”)
Format(NoMhs,
Format(NoMhs, “00000/TS”
00000/TS”)
Nizam © Nizam ©
Browser object
Mereferensi pustaka object tambahan kumpulan (collection)
collection) object
Memberikan object pada variabel Contoh:
Contoh: workbook, worksheet,
Operator Is
Bekerja dengan beberapa properties dan window, cell, range, gambar,
gambar, grafik,
grafik,
methods dsb.
dsb.
Object aplikasi
Object windows Nizam © Nizam ©
12
Objects di bawah Application object Bekerja dengan object properties
Object Collection Description
Sintaks:
Sintaks: Object.Property
AddIn AddIns Semua file add-
add-in/tambahan
in/tambahan yang
ada dalam Excel Contoh:
Contoh: Application.ActiveWindow
Dialog Dialogs Kotak dialog yang built-
built-in dalam
Excel Masalah:
Masalah:
Name Names Koleksi nama-
nama-nama yang ada dalam
semua workbooks yang terbuka • Ada beberapa propertes yang juga
Window Windows Kumpulan windows yang terbuka merupakan object
Workbook Workbooks Koleksi dari semua workbooks yang
terbuka
WrosheetFunctio Container untuk fungsi-
fungsi-fungsi
n worksheet Excel
Nizam © Nizam ©
Application Object
Properties .
ActiveMenuBar
Menetapkan nilai property
ActiveWindow Window Object
Sintax:
Sintax: Object.Property = value
Calculation
Etc. Properties .
Range Object
ActiveCell
Caption Properties . Value berupa nilai pernyataan untuk
DisplayGridlines ColumnWidth
Etc. Font Font Object menset property, bisa berupa :
Formula
Etc.
Properties
Italic
.
• Numerik:
Numerik: ActiveCell.Font.Size = 14
Name
Size
• String: ActiveCell.Font.Name = “Arial”
Arial”
Etc. • Logika:
Logika: ActiveCell.Font.Italic = True
Nilai property dapat dicari dengan
Application.ActiveWindow.ActiveCell.Font.Italic
• variabel = Object.Property
sama dengan
ActiveCell.Font.Italic Nizam © Nizam ©
ActiveWorkBook.Close(SaveChanges
ActiveWorkBook.Close(SaveChanges,, disebut event handlers
fileName,
fileName, RouteWB)
RouteWB) Event handlers akan dijalankan bila
13
Contoh event handler Mengelola event
' prosedur pemberian salam saat workbook dibuka Contoh:
Contoh:
' meminta nama pengguna ' prosedur pemberian salam saat workbook dibuka
Private Sub Workbook_Open() ‘ event membuka ' meminta nama pengguna
Workbook Private Sub Workbook_Open() ‘event
membuka wb
Dim pesan, judul, Default, MyValue
Dim pesan, judul, Default, MyValue
pesan = "Hi, siapa nama anda? " ' minta input pesan = "Hi, siapa nama anda? " ' minta
nama. input nama.
judul = "Salam pembuka" ' Set judul. judul = "Salam pembuka" ' Set
Default = "tanpa nama" ' Set default. judul.
' Display pesan, judul, dan nilai default. Default = "tanpa nama" ' Set default.
MyValue = InputBox(pesan, judul, Default) ' Display pesan, judul, dan nilai default.
MsgBox ("Assalamu'alaikum " + MyValue) MyValue = InputBox(pesan, judul, Default)
Nizam © MsgBox ("Assalamu'alaikum " + MyValue) Nizam ©
End Sub
End Sub
Sub
14
Bekerja dengan properties dan methods
Operator Is yang banyak (1/3)
Kita kadang perlu membandingkan Contoh:
Contoh:
beberapa objects, VBA menyediakan Sub FormatRange()
FormatRange()
Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”).Style = “Currency”
Currency”
operator Is untuk membandingkan Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”).WrapText= True
dua objects Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”).Font.Size = 16
Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”).Font.Bold = True
Hasil = Object1 Is Object2
Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“ B2:B5”).Font.Color = RGB(255,
).Range(“B2:B5”
• Object1 dan Object2 adalah object atau 0, 0)
variabel,
variabel, bila sama,
sama, hasil akan True,
True, bila Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”).Font.Name =
beda akan False “Arial”
Arial”
End Sub
Nizam © Nizam ©
Bekerja dengan properties dan methods Bekerja dengan properties dan methods
yang banyak (2/3) yang banyak (3/3)
Contoh yang lebih baik:
baik: Contoh yang lebih baik lagi:
lagi:
Sub FormatRange2() Sub FormatRange3()
With Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”) With Worksheets(“
Worksheets(“Sheet1”
Sheet1”).Range(“
).Range(“B2:B5”
B2:B5”)
.Style = “Currency”
Currency”
.Style = “Currency”
Currency”
.WrapText= True
.WrapText= True
With .Font
.Font.Size = 16
.Size = 16
.Font.Bold = True .Bold = True
.Font.Color = RGB(255, 0, 0) .Color = RGB(255, 0, 0)
.Font.Name = “Arial”
Arial” .Name = “Arial”
Arial”
End With End With
End Sub End With
End Sub
Nizam © Nizam ©
15
Object Window Object Window
Menspesifikasi object window Beberapa properties object window
• Window.Caption Window.Visible
• Dengan indeks,
indeks, atau dengan • Window.Height Window.Width
menuliskan namanya • Window.Left Window.WindowNumber
Windows(1) • Window.Top Window.WindowState
Windows(“
Windows(“Nilai.xls”
Nilai.xls”), atau • Window.UsableHeight
• Window.UsableWidth
ActiveWindow Æ window yang saat ini
16
Keputusan ganda Keputusan ganda
Penggunaan statement multi If…
If…Then…
Then…Else
Penggunaan operator And dan Or If condition1 Then
If condition1 And condition2 Then [condition1 TrueStatements]
TrueStatements]
[TrueStatements]
TrueStatements] ElseIf condition2
Else [condition2 TrueStatements]
TrueStatements]
[FalseStatements]
FalseStatements] <etc.>
End If Else
Contoh:
Contoh: [FalseStatements]
FalseStatements]
Function FutureValue2(Rate, Nper,
Nper, Pmt, Frequency) End If
If Frequency <> “Monthly”
Monthly” And Frequency <> “Quarterly”
Quarterly” Then
MsgBox “The Frequeny argument must be either “ & “””Monthly
“””Monthly””
”” Contoh:
Contoh:
or_ Function FutureValue3(Rate, Nper,
Nper, Pmt, Frequency)
“”Quarterly
“”Quarterly””
””!!” If Frequency = “Monthly”
Monthly” Then
Exit Function FutureValue3 = FV(Rate / 12, Nper * 12, Pmt / 12) ‘ freq monthly
End If ElseIf Frequency = “Quarterly”
Quarterly” Then
If Frequency = “Monthly”
Monthly” Then FutureValue3 = FV(Rate / 4, NPer * 4, Pmt / 4) ‘ freq quarterly
FutureValue2 = FV(Rate / 12, Nper * 12, Pmt / 12) ‘ freq monthly Else
Else MsgBox “The Frequency argument must be either “ & _
FutureValue2 = FV(Rate / 4, NPer * 4, Pmt / 4) ‘ freq quarterly “””Monthly
“””Monthly””
”” or “”Quarterly
“”Quarterly””
””!!”
End If End If
End Function Nizam © End Function Nizam ©
Nizam © Nizam ©
17
Pengulangan - loop Pengulangan - loop
Contoh
Struktur Do…
Do…Loop Sub BigNumbers()
BigNumbers()
Sintaks:
Sintaks: Dim rowNum As Integer, colNum As Integer, currCell As
• Do While condition ‘ check dulu baru loop Range
[statement] ‘ dilakukan selama kondisi T rowNum = ActiveCell.Row
Loop colNum = ActiveCell.Column
• Do ‘ lakukan dulu baru check Set currCell = ActiveSheet.Cells(rowNum,
ActiveSheet.Cells(rowNum, ColNum)
ColNum)
[statement] Do While currCell.Value <> “”
Loop While condition ‘ diulang bila kondisi T If IsNumeric(currCell.Value)
IsNumeric(currCell.Value) Then
• Do Until condition ‘ check dulu baru loop
If currCell.Value >= 1000 Then
[statemnt]
statemnt] ‘ dilakukan selama kondisi F
Loop currCell.Font.Color = VBAColor(“
VBAColor(“magenta”
magenta”)
• Do ‘ dilakukan dulu baru check End If
[statement] rowNum = rowNum + 1
Loop Until condition ‘ diulang bila kondisi masih F ActiveSheet.Cells(rowNum, colNum)
Set currCell = ActiveSheet.Cells(rowNum, colNum)
Loop
Nizam © End Sub Nizam ©
18
Tugas - 2 Tugas 3
Buat sekumpulan program dan Buat satu program aplikasi VBA excel
fungsi untuk melakukan operasi untuk bidang teknik
bilangan komplex:
komplex: penjumlahan,
penjumlahan, sipil/fisika/mekanika
pengurangan,
pengurangan, perkalian,
perkalian, pembagian
Nizam © Nizam ©
19