Anda di halaman 1dari 19

Excel as object

‹ Dalam graphical user interface, aplikasi


dan bagian-
bagian-bagiannya dikenal sebagai
object
Excel in a nutshell ‹ Object excel
• Excel
• Workbook
• Worksheet
• Range dalam worksheet
• Listbox
• Chart sheet
• Chart
• Dsb.
Dsb.
Nizam © Nizam ©

Object utama Excel user interface


‹ Workbooks merupakan “folder”
folder”
yang berisi:
berisi: ‹ Antarmuka excel bisa dilakukan
• Worksheets dengan beberapa cara:
cara:
• Chart sheets • Menu
• Macro sheets (.xlm
(.xlm Æ obsolete) • Dialog box
• Dialog sheets (obsolete) • Toolbars
‹ Worksheets merupakan lembar • Drag-
Drag-and-
and-drop
kerja • Keyboard shortcuts
• 1 worksheet terdiri dari 256 kolom dan
65,536 baris (16,777,216 sel!!)
sel!!) Æ
setara dengan 36,000 halaman cetak!!!
cetak !!!
Nizam © Nizam ©

Entry data Beberapa kemampuan excel


‹ Nilai (angka,
angka, tanggal,
tanggal, waktu)
waktu) ‹ Formatting
Text
‹ Formulas
‹

‹ 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

‹ Scenario management ‹ row absolute A$1

‹ Analysis toolpak ‹ Column absolute $A1

‹ Pivot table ‹ Referencing other sheets/workbooks

‹ Auditing =[data.xls]Sheet2[A2]+1
‹ Solver ‹ Referensi dengan nama : insertÆ
insertÆ
‹ Add-
Add-ins nameÆ
nameÆ create
Nizam © Nizam ©

VBA - Visual Basic for


Bagian 1
Application
Bahasa pemrograman untuk Dasar-
Dasar-dasar pemrograman VBA
aplikasi Windows

Nizam © Nizam ©

Apa yang dibicarakan? Apa dan kenapa VBA


‹ Mengenal VBA ‹ Merupakan bahasa pemrograman bagi
‹ IDE semua aplikasi Microsoft Office (Exel
(Exel,,
‹ Pemrograman berbasis object Word, Access, Powerpoint)
Powerpoint) dan beberapa
yang lain (Outlook, Visio, AutoCAD,
‹ Cara membuat program VBA MapInfo, dsb.)
dsb.)
‹ Makro ‹ Dapat berfungsi sebagai macro atau
‹ Editor program bahasa pemrograman
‹ Menjalankan program ‹ Merupakan bahasa program beorientasi
‹ Membuat fungsisendiri object, semua object office dapat dengan
‹ Membuat prosedur mudah dimanipulasi dengan VBA
‹ Mengatur editor ‹ Belajar satu bahasa dapat daplikasikan
dalam banyak aplikasi Windows
‹ Melindungi program
Nizam © Nizam ©

2
kenapa IDE – integrated development environment

‹ Mendukung aplikasi internet dan ‹ Untuk menulis/edit


menulis/edit program VBA
intranet digunakan IDE
‹ Mendukung ActiveX controls

‹ Code editor dengan bantuan yang

lengkap dan debugger


‹ Form building tools

‹ Object browser

‹ Dll yang memudahkan pembuatan

program Nizam © Nizam ©

Module window

Procedure list
Object list
Prinsip prmrograman berbasis object

Project explorer ‹ Object


• Workbook, worksheet, chart, cell, dsb.
dsb.
‹ Properties
Properties window • Setiap object memiliki properties: color,
font, italic, dsb.
dsb.
‹ Method & procedure
• Cara/perintah
Cara/perintah untuk melakukan
sesuatu:
sesuatu: pindah worksheet, pindah
baris,
baris, dsb.
dsb.
Nizam © Nizam ©

VBA programming Cara membuat program


‹ Program dalam VBA disebut prosedur (dan ‹ Dengan merekam macro (macro
function)
recording)
‹ Tiga jenis prosedur
• Command macros Æ mengotomasi prosedur-
prosedur- ‹ Dengan menulis program dalam
prosedur,
prosedur, fungsi-
fungsi-fungsi yang ada (built-
(built-in) IDE/VBA editor
dalam aplikasi,
aplikasi, memformat,
memformat, menyimpan,
menyimpan, dsb.
dsb.
• User-
User-defined function (function procedure) Æ
program yang berisi rumus dan perintah yang
kita susun sendiri
• Property procedure menunjukkan atau
mengubah properti dari suau object (class
module)
Nizam © Nizam ©

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

Fungsi Membuat fungsi


Fungsi adalah rumus yang mengolah argumen
‹
dan mengembalikan hasil ‹ Contoh:
Contoh: menghitung sisi miring
‹ Struktur fungsi segitiga
Function NamaFungsi(argumen1, argumen2, …)
[Pernyataan/statement
Pernyataan/statement VBA] • Sisimiring = sqr(x2 + y2)
NamaFungsi = hasil yang dikembalikan
End Function Function sisimiring(x,
sisimiring(x, y) ‘ nama fungi
‹ Bagianbagian:
Bagianbagian: sisimiring = sqr(x ^ 2 + y ^ 2) ‘ nilai
• Statement Function
• Nama fungsi hasil
• Argumen fungsi (parameter) End Function
• Statement VBA yang melakukan hitungan
• Hasil yang dikembalikan Æ nama fungsi = ‹ Pemakaian:
Pemakaian: isikan pada sel dengan
• Statement End Function
nama formula, misal =sisimiring(3,
Nizam ©
4) akan menghasilkan 5 Nizam ©

Membuat fungsi prosedur


Function akar(A, B, C)
If A <> 0 Then ‹ Prosedur adalah unit program dalam
diskrim = B ^ 2 - 4 * A * C VBA yang merupakan blok kode
If diskrim > 0 Then
akar = "dua akar riel" dalam satu modul
ElseIf diskrim = 0 Then
akar = -B / (2 * A) ‹ Struktur sebuah prosedur
Else
akar = "akar imaginer"
Sub NamaProsedur (argumen1,
End If argumen2,…
argumen2,…)
Else
akar = "bukan persamaan kuadrat"
[pernyataan/statement
pernyataan/statement VBA]
End If End Sub
End Function

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

Informasi parameter Menyimpan/export modul


‹ Setiap fungsi memiliki satu/beberapa ‹ Dari project explorer, pilih modul
parameter, parameter terebut dapat yang akan disimpan
dimunculkan dengan menuliskan ‹ Pilih File|Export File
nama fungsi dan tanda kurung buka ‹ Pilih lokasi tempat menyimpan file
• activecell.Formula=pmt( Æ akan muncul
‹ Beri nama file.BAS
argumen untuk fungsi pmt
‹ Tekan Save

Nizam © Nizam ©

Mengimpor/ambil modul Mengatur editor


‹ Cara kerja dan tampilan editor dapat
‹ Dari project explorer diatur dengan menu Tools|Options
‹ Pilih File|Import File

‹ Pilih file dari lokasi tempat

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 ©

Apa yang dibicarakan? Deklarasi variabel


‹ Mendeklarasi variabel ‹ Variabel dalam VBA sebaiknya
‹ Memahami lingkup varaibel dideklarasikan untuk menyatakan nama
‹ Mengirim variabel sbg referensi dan sbg dan jenis data (data type)
argumen ‹ Pendeklrasian variabel menghindari

‹ Variabel statik kesalahan dan mengefisienkan program


‹ Caranya:
Caranya: dengan pernyataan Dim
‹ Menghindari kesalahan variabel
‹ Jenis data variabel Dim namavar As jenisdata
‹ Array Namavar harus dimulai dengan huruf,
huruf, max
255 karakter,
karakter, tidak mengandung spasi
‹ Konstanta dan .!@#$%&
Nizam © Nizam ©

contoh Lingkup/scope variabel


‹ Dalam VBA lingkup variabel
Function GrossMargin()
GrossMargin()
‘ deklarasi variabel Lingkup prosedur
Dim totalSales Lingkup modul
Dim totalExpenses Lingkup publik
‘program
totalSales = Application.Sum(Range(“
Application.Sum(Range(“Sales”
Sales”))
totalExpenses =
Application.Sum(Range(“
Application.Sum(Range(“Expenses”
Expenses”))
GrossMargin=(
GrossMargin=(totalSales
totalSales –
totalExpenses)/totalSales
End Function
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 ©

Lingkup modul contoh


Sub CalcMargins1() Dim totSales2
‹ Agar variabel dapat diakses oleh Range("GrossMarg").Value = GrossMarginCalc
Range("NetMarg").Value =
Dim totExpenses2
Sub CalcMargins2()
NetMarginCalc(Range("FixedCosts").Value)
beberapa prosedur harus dideklarasi
Range("GrossMarg").Value = GrossMarginCalc2
End Sub Range("NetMarg").Value =
Function GrossMarginCalc() NetMarginCalc2(Range("FixedCosts").Value)

sebelum/di luar prosedur-


prosedur-prosedur
Dim totSales
Dim totExpenses
totSales = Application.Sum(Range("Sales"))
End Sub
Function GrossMarginCalc2()
totSales2 = Application.Sum(Range("Sales"))

yang menggunakan variabel tersebut totExpenses = Application.Sum(Range("Expenses"))


GrossMarginCalc = (totSales - totExpenses) /
totSales
totExpenses2 =
Application.Sum(Range("Expenses"))
GrossMarginCalc2 = (totSales2 - totExpenses2) /
End Function totSales2
Function NetMarginCalc(fixedCosts) End Function
Dim totSales Function NetMarginCalc2(fixedCosts)
Dim totExpenses NetMarginCalc2 = (totSales2 - totExpenses2 _
totSales = Application.Sum(Range("Sales")) - fixedCosts2) / totSales2
totExpenses = Application.Sum(Range("Expenses")) End Function
NetMarginCalc = (totSales - totExpenses -
fixedCosts) _ totSales
End Function

Nizam © Nizam ©

Lingkup publik Mengirim argumen variabel


‹ Kadang kita menginginkan semua ‹ Bila program terdiri dari banyak prosedur,
prosedur,
mendeklarasikan variabel dalam lingkup
modul dalam proyek kita dapat modul dapat berbahaya,
berbahaya, karena nilai
mengakses variabel Æ lingkup publik variabel dapat diubah oleh setiap prosedur
‹ Caranya:
Caranya: deklarasikan dengan yang mengakses variabel tersebut atau
variabel yang sama dideklarasikan
public namavariabel berbeda dalam prosedur lain
Untuk menggantikan dim ‹ Untuk menghindari kesalahan semacam
namavariabel itu,
itu, variabel dapat dikirim dari satu
prosedur ke yang lain sebagai argumen
‹ Pengiriman argumen variabel dapat
Nizam © berdasar referensi atau berdasar nilai
Nizam ©
variabel

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 ©

Variabel statis Contoh variabel statik


Sub tesStatik()
‹ Dalam VBA, variabel dalam prosedur ProsedurStatik
setelah digunakan nilainya akan ProsedurStatik
End Sub
dihapus;
dihapus; ketika prosedur dipanggil Sub ProsedurStatik()
lagi,
lagi, akan diisi/
diisi/ hitung lagi Static varStatik
Dim varReguler
‹ Bila ingin nilai variabel tak diubah
varStatik = varStatik + 5
bisa dipakai variabel statis (static varReguler = varReguler + 5
MsgBox "varStatik = " & varStatik & " dan varReguler = " &
variable) varReguler
End Sub
‹ Saat dijalankan nilai varStatik mula-
mula-mula 5, lalu 10,
sedangkan varReguler tetap 5
Nizam © Nizam ©

Menghindari kesalahan variabel Jenis data variabel


‹ Kadang kita salah mengetik nama ‹ VBA secara otomatis memberi jenis data
variabel,
variabel, kesalahan ini paling sering variant (22 byte) untuk setiap variabel
terjadi pada pembuatan program yang yang dideklarasikan tanpa diberi jenis
besar data
‹ Untuk menghemat memori dan
‹ Untuk menghidarinya,
menghidarinya, gunakan perintah menambah efisiensi program jenis data
explicit, maka VBA akan memberi pesar sebaiknya dinyatakan pada saat deklarasi
error bila ketemu variabel baru yang variabel
belum dideklarasikan ‹ Cara:
‹ Caranya:
Caranya: • Dim namaVariabel As JenisData
• Dengan mendeklarasikan di bagian atas modul ‹ Contoh:
Contoh:
Option Explicit • Dim kata As String
• Pilih Tools|Option Æ modul general, Nizam © • Dim noMhs As Integer Nizam ©
pilih/contreng Require Variable Declaration

8
Jenis data variabel
Jenis Ukuran lambang Catatan default jenis data
Boolean 2 bytes True & false

Byte 1 byte Nilai 0 sampai 255

Currency 8 bytes @ Untuk mata uang,


uang, nilai antara -
‹ Kita dapat menyatakan jenis data default
922,337,203,685,477.5808 hingga
922,337,203,685,477.5808
‹ Contoh:
Contoh:
Date 8 bytes #date# Untuk tanggal,
tanggal, antara 1 Jan 1000 hingga 31
Desember 9999 DefInt I-N
Double 8 bytes # Pressi ganda,
ganda, bilangan negatif - Berarti semua variabel yang mulai dengan huruf
1.79769313486232E308 hingga -
4.9406564581247E-
4.9406564581247E-324; bilangan positif dari
I hingga N (kapital
(kapital)) merupakan intege
Integer 2 bytes % 4.9406564581247E-
4.9406564581247E
Untuk -324
bil cacah antara
1.79769313486232E308
hingga sampai 32,767
-32,768 ‹ Keywords:
Long 4 bytes & Bilangan cacah besar -2,147,483,648 sampai • DefBool DefDbl
2,147,483,6487
• DefByte DefDate
Object 4 bytes Referensi obyek
• DefInt DefStr
Single 4 bytes ! Bil pecahan presisi tunggal
• DefLng DefObj
String 1 byte per $ Untuk teks,
teks, dapat sampai 64KByte
char • DefSng DefVar
Variant 16 byte Dapat untuk sembarang jenis data

Variant 22 bytes + Dapat untuk sembarang jenis data


(string) 1 byte per Nizam © Nizam ©
char

User-defined data types Variabel array


‹ Kita dapat mendefinisikan jenis data sendiri ‹ Variabel matriks dan vektor dapat
‹ Contoh:
Contoh: dideklarasikan dengan variabel array
Type Mahasiswa ‹ Cara:
nama As String Dim mhs(200) As String
nomhs As Integer
angkatan As Integer
tglLhr As Date mhs(0) = “Bambang Yuwono”
Yuwono”
End Type mhs(100) = “Banowati Ipit”
Ipit”
Mahasiswa.nama = “Ahmad Musa”
Musa” Catatan:
Catatan: bisa Option Base 1 Æ mulai dari
Mahasiswa.nomhs = 22718 larik 1
Mahasiswa.angkatan = 2002 Atau Dim vektor(50 to 100) As Double
Mahasiswa.tglLhr = #01/01/1985# Dim matriks(1 to 50, 1 to 20)
Nizam © Nizam ©

Array dinamis contoh


‹ Bila ukuran array belum diketahui,
diketahui, bisa Sub PerformCalculations()
PerformCalculations()
dideklarasikan sebagai array dinamis
‹ Bila dimensinya diketahui bisa dinyatakan Dim calcVal()
calcVal() As Double, totVal as Integer
kemudian .
Dim myArray()
myArray() As Double .

.
ReDim myArray(105)
‹ ReDim akan me- me-reinisialisasi nilai variabel dalam totVal = GetTotalValue()
GetTotalValue()
array tersebut,
tersebut, bila nilai variabel ingin tak di-
di- ReDim calcVal(totVal)
calcVal(totVal)
reinisialisasi:
reinisialisasi:
.
ReDim Preserve myArray(105)
‹ Dimensi array bisa diketahui dengan .
LBound(namaArray) End Sub
LBound(namaArray) Æ indeks bawah
UBound(namaArray)
UBound(namaArray) Æ indeks atas
Nizam © Nizam ©

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 ©

Apa yang dibicarakan? Struktur ekspresi VBA


‹ Struktur ekspresi ‹ Variabel = statemen tentang variabel
‹ Operator VBA
contoh:
contoh:
‹ Bekerja dengan ekspresi numerik
energy = mass * (speedOfLight
(speedOfLight ^ 2)
‹ Bekerja dengan ekspresi tex/string
tex/string
operand <asignment
<asignment> > operand &
‹ Bekerja dengan ekspresi logika operator
‹ Bekerja dengan ekspresi tanggal Operand harus menggunakan jenis variabel
‹ format
yang kompatibel
Operator harus sesuai dengan jenis data
Nizam © Nizam ©

Operator VBA Operator VBA


‹ Aritmetik ‹ Pembanding menghasilkan nilai True atau False
+ tambah/plus
tambah/plus = sama dengan 10=5 Æ false
- kurang/minus
kurang/minus > Lebih besar dari
- negasi
* kali < Lebih kecil dari
/ bagi >= Lebih besar atau sama dengan
\ pembagian integer <= Lebih kecil atau sama dengan
^ pangkat <> Tidak sama dengan
Mod modulus 10 Mod 5 = 0
Like mirip Jo?n Like John Æ True
‹ Konkatenasi untuk jenis data string
“Soft”
Soft” & “ware”
ware”

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 ©

Fungsi finansial Fungsi string


DDB(cost,
DDB(cost, salvage, life, period, Menghitung depresiasi aset dengan metode ASC(string)
ASC(string) Karakter ANSI huruf pertama string
factor) double declining balance
Chr(charcode)
Chr(charcode) Karakter (sbg varian)
varian) untuk kode ANSI charcode
FV(rate,
FV(rate, nper,
nper, pmt, pv,
pv, type) Menghitung nilai masa depan dari investasi atau Chr$(charcode)
Chr$(charcode) Karakter (sebagai string) untuk kode ANSI
pinjaman charcode
CStr(expression)
CStr(expression) Konversi expression ke nilai string
IPmt(rate,per,nper,
IPmt(rate,per,nper, pv,
pv, fv, type) Pembayaran bunga untuk masa pinjaman
tertentu InStr(star,
InStr(star, string1, string2) Posisi karakter kejadian string1 dalam string2
IRR(values,
IRR(values, guess) Nilai internal rate of return serangkaian cash-
cash- dihitung dari start
flows
InStrB(start,
InStrB(start, string1, string2) Posisi byte kejadian string1 dalam string2
MIRR(values,
MIRR(values, finance_rate,
finance_rate, IRR yang dimodifikasi untuk cash flow periodik dihitung dari start
reinvest_rate)
reinvest_rate)
NPer(rate,
NPer(rate, pmt, p, fv, type) Jumlah periode investasi atau pinjaman LCase(string)
LCase(string) Mengubah ke huruf kecil sbg varian
NPV(rate,
NPV(rate, value1, value2,…
value2,…) Nett present value serangkaian investasi LCase$(string)
LCase$(string) Mengubah ke huruf kecil sbg string
Pmt(rate,nper,
Pmt(rate,nper, pv,
pv, fv, type) Pembayaran periodik sejumlah pinjaman atau Left(string,
Left(string, length) Posisi paling kiri dari string sbg varian
investasi
PPmt(rate,
PPmt(rate, per, nper,
nper, pv,
pv, fv, type) Pembayaran pokok pinjaman untuk masa Left$(string,
Left$(string, length) Posisi paling kiri dari string sbg string
tertentu
PV(rate,
PV(rate, nper,
nper, pmt, fv, type) Nilai sekarang sejumlah investasi Len(string)
Len(string) Panjang karakter
Rate(nper,
Rate(nper, pmt, pv,
pv, fv, type, guess) Bunga periodik pinjaman atau investasi LTrim(string)
LTrim(string) Menghilangkan spasi
SLN(cost,
SLN(cost, salvage, life) Depresiasi garis lurus suatu aset Mid(string,
Mid(string, start, length) karakter sepanjang length dari string mulai start
SYD(cost,
SYD(cost, salvage, life, period) Depresiasi sum-
sum-of-
of-year digits suatu aset Dst.
Dst.
Nizam © Nizam ©

Bekerja dengan ekspresi logika Bekerja dengan tanggal


‹ Tanggal dalam VBA disimpan dalam
‹ Operator And
bentuk rangkaian angka,
angka, dengan 31
• Expr1 And Expr2 Æ T bila keduanya T
Desember 1899 sebagai awal
‹ Operator Or
(sembarang)
sembarang) sehingga 1 Januari 1900
• Expr1 Or Expr2 Æ T bila salah satu T
adalah 1; 366 adalah 31 Desember 1900;
‹ Operator XOr 37,980 adalah 25 Desember 2003; dst.
dst.
• Expr1 XOr Expr2 Æ T bila satu T dan lainnya F
‹ Saat (jam, menit,
menit, detik)
detik) dinyatakan dalam
‹ Operator Eqv
• Expr1 Eqv Expr2 Æ T bila keduanya T atau
pecahan,
pecahan, dengan 0 adalah tengah malam;
malam;
keuanya F 0.5 adalah tengah hari
‹ Operator Imp (Implikasi
(Implikasi))
• Expr1 Imp Expr2 Æ T bila Expr2 T atau keduanya
F 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 ©

kajian Pengertian object


‹ Pengertian Object
‹ Hiraki object ‹ Object adalah segala sesuatu dalam
Bekerja dengan properti object
‹

‹ Bekerja dengan metode object


aplikasi Windows yang dapat dilihat
‹ Menangani kejadian object dan dimanipulasi/diubah
Bekerja dengan koleksi object
‹ Object bisa berupa satu object atau
‹

‹ 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 ©

cara memanipulasi oject Hirarki object


‹ Cara memanipulasi object: ‹ Object dalam aplikasi Office memiliki
• Mengubah properties hirarki dari yang paling umum
• Mengaktivasi method yang terkait dengan hingga yang lebih spesifik;
spesifik;
object
• Mendefinisi prosedur yang dijalankan saat ‹ Object paling umum:
umum: Application
suatu event terjadi object Æ program itu sendiri.
sendiri. Dalam
‹ Ilustrasi/analogi Excel Application object memiliki >
• Komputer:
Komputer: object 15 objects
• Merek,
Merek, jenis prosesor:
prosesor: property
• Menulis surat,
surat, main game: method
• Dihidupkan,
Dihidupkan, dibuka,
dibuka, dimatikan:
dimatikan: eventNizam © 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 ©

Bekerja dengan methods Mengelola object events


‹ Method menggambarkan apa yang ‹ Event adalah segala sesuatu yang
dilakukan object; contoh:
contoh: metode terjadi pada object, seperti:
seperti:
sort, pivot table, simpan,
simpan, buka,
buka, dsb.
dsb. membuka workbook adalah event
‹ Sintax:
Sintax: Object.Method(arg1, arg2,…
arg2,…) pada workbook
contoh:
contoh: ActiveWorkBook.Save ‹ Respons terhadap event yang terjadi

ActiveWorkBook.Close(SaveChanges
ActiveWorkBook.Close(SaveChanges,, disebut event handlers
fileName,
fileName, RouteWB)
RouteWB) ‹ Event handlers akan dijalankan bila

event terjadi pada suatu object


Nizam © Nizam ©

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

Bekerja dengan koleksi object Object browser


Libraries
‹ Collection adalah himpunan objects yang serupa;
serupa; dan Project
seperti WorkBooks Collection merupakan koleksi
workbook yang terbuka
‹ Collection juga merupakan object sehingga
memiliki properties dan methods yang bisa
dimanipulasi
‹ Anggota collection disebut element yang bisa Properties
diakses dengan namanya atau dengan index
‹ Contoh:
Contoh:
Workbooks(“
Workbooks(“Budget.xls”
Budget.xls”).Close Events
ActiveSheet.Picture(1).Copy
‹ Kalau tak diberi index, diasumsikan semua Methods
koleksi diperlakukan dengan method yang sama
Template
Code
Nizam © Nizam ©

Bekerja dengan object browser Memasukkan object dalam variabel


‹ Menunjukkan ‹ Sintax:
Sintax: variableName = ObjectName
objects yang ada Dim budgetSheet As Object
pada satu library, Set budgetSheet =_
properties, Workbooks(“
Workbooks(“Budget.xls”
Budget.xls”).Worksheets(“
).Worksheets(“2003
methods dan Budget)
events yang terkait
dengan object Lebih baik:
baik:
Pencari object Dim budgetSheet As Worksheet
Set budgetSheet =_
Workbooks(“
Workbooks(“Budget.xls”
Budget.xls”).Worksheets(“
).Worksheets(“2003
Budget)
Nizam © Nizam ©

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 ©

Object aplikasi Methods pada Application Object


Application Object merupakan container yang
‹
berisi semua oject dalam aplikasi yang ‹ Application object memiliki beberapa
dijalankan;
dijalankan; object ini memiliki beberapa methods, diantaranya
properties dan methods yang banyak gunanya
‹ Beberapa contoh • Application.Help:
Application.Help: mendisplay sistem
• Application.ActivePrinter:
Application.ActivePrinter: mengembalikan himpunan Help aplikasi
printer driver yang tersedia
• Application.ActiveWindow:
Application.ActiveWindow: mengembalikan window yang • Application.Quit:
Application.Quit: keluar dari aplikasi
sedang aktif
• Application.Caption:
Application.Caption: mengembalikan judul aplikasi • Application.Repeat:
Application.Repeat: mengulang kegiatan
• Application.Dialogs:
Application.Dialogs: built-
built-in dialog yang ada dlm aplikasi yang baru saja dilakukan
• Application.Visible:
Application.Visible: mengatur aplikasi terlihat/tidak
• Application.Width:
Application.Width: lebar window aplikasi • Application.EnableCancelKey
• Application.Windows:
Application.Windows: kumpulan window aplikasi yang
aktif
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

sedang aktif ‹ Beberapa methods object window


• Window.Activate Æ
‹ Membuka window baru Windows(“
Windows(“Nilai.xls”
Nilai.xls”).Activate
• Window.Close
• Window.NewWindow • Window.LargeScroll(Down,Up,ToRight,ToLeft)
Window.LargeScroll(Down,Up,ToRight,ToLeft)
Nizam ©
• Window.SmallScroll(Down,Up,ToRight,ToLeft)
Window.SmallScroll(Down,Up,ToRight,ToLeft
Nizam ©
)

Apa yang akan dibahas?


‹ Pengendalian alur program
‹ If…
If…Then
Bagian 5 ‹ If…
If…Then…
Then…Else
‹ Membuat keputusan ganda
‹ Fungsi yang mengambil keputusan
‹ Loops
Mengendalikan alur program ‹ Do…
Do…Loop
‹ For…
For…Next
‹ For Each…
Each…Next
‹ Exit
Nizam © Nizam ©

Pengendalian alur program Pengendalian alur program


If…
If…Then…
Then…Else
‹ Alur program dikendalikan dengan ‹
• Sintaks
logika pengambilan keputusan (True If condition Then
[TrueStatements]
TrueStatements]
atau False) Else
[FalseStatements]
FalseStatements]
‹ If..Then End If
• Langsung/sebaris Contoh:
Contoh:
Function FutureValue(Rate,
FutureValue(Rate, Nper,
Nper, Pmt, Frequency)
If condition Then statement If Frequency = “Monthly”
Monthly” Then
FutureValue = FV(Rate / 12, Nper * 12, Pmt / 12) ‘ freq
• Dengan blok monthly
Else
If condition Then FutureValue = FV(Rate / 4, NPer * 4, Pmt / 4) ‘ freq
quarterly
[statements]
statements] End If
End If End Function
Nizam © Nizam ©

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 ©

Keputusan ganda Keputusan ganda


‹ Penggunaan Select Case
Select Case TestExpression ‹ Contoh lain: mengubah nilai angka ke huruf
Case FirstCaseList Function nilHuruf(nilAngka As Integer) As String
[FirstStatements]
FirstStatements] Select Case nilAngka
Case SecondCaseList Case Is < 0
[SecondStatements]
SecondStatements] nilHuruf = “Salah data nilai kurang dari 0!”
0!”
<etc.> Case Is < 50
Case Else nilHuruf = “F”
[ElseStatements]
ElseStatements] Case Is < 60
End Select nilHuruf = “D”
Case Is < 70
Contoh:
Contoh: nilHuruf = “C”
Function FutureValue4(Rate, Nper,
Nper, Pmt, Frequency) Case Is < 80
Select Case Frequency nilHuruf = “B”
Case “Monthly”
Monthly” Case Is <= 100
FutureValue4 = FV(Rate / 12, Nper * 12, Pmt / 12) ‘ freq nilHuruf = “A”
monthly Case Else
Case “Quarterly”
Quarterly” nilHuruf = “Salah!
Salah! Nilai lebih dari 100!”
100!”
FutureValue3 = FV(Rate / 4, NPer * 4, Pmt / 4) ‘ freq End Select
quarterly End Function
Case Else
MsgBox “The Frequency argument must be either “ & _
“””Monthly
“””Monthly””
”” or “”Quarterly
“”Quarterly””
””!!”
Nizam © Nizam ©
End Select
End Function

Fungsi pengambil keputusan Fungsi pengambil keputusan


‹ Statement IIf (Inline If) ‹ Fungsi Switch
• Sintaks:
Sintaks: IIf (condition,
condition, TrueResult,
TrueResult, FalseResult)
FalseResult) • Sintaks:
Sintaks: Switch(expr1,
Switch(expr1, value1, value2,
value2, …)
Function ProsesorCacat()
ProsesorCacat() As Boolean
Function NilHuruf2(nilAngka As Integer) As String
ProsesorCacat = IIf((4195835 – (4195835/3145727) * 3145727),
NilHuruf2 = Switch(nilAngka < 0 “Error <0”
<0”,_
True, False)
nilAngka < 50, “F”,_
End Function
nilAngka < 60, “D”,_
‹ Fungsi Choose nilAngka < 70, “C”,_
nilAngka < 80, “B”,_
• Sintaks:
Sintaks: Choose(index,
Choose(index, value1, value2, …) nilAngka <= 100, “A”,_
Function NamaHari(noHari As Integer) As String nilAngka > 100, “Error > 100”
100”)
NamaHari = Choose(noHari,
Choose(noHari, “Ahad”
Ahad”, “Senin”
Senin”, “Selasa”
Selasa”, “Rabu”
Rabu”, “Kamis”
Kamis”, End Function
“Jumat”
Jumat”,_ “Sabtu”
Sabtu”)
End Function

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 ©

For … Next For Each … Next


‹ Loop dengan For … Next ‹ Loop dengan For Each … Next
Sintaks:
Sintaks: For counter = start To end [inkremen
[inkremen]] Sintaks:
Sintaks: For Each element In group
‹
‹
[statement]
Next [counter [statement]
[counter]]
Sub LoopTest()
LoopTest() Next [element
[element]]
Dim counter As Integer Sub convertProper()
convertProper()
For counter = 1 To 10 Dim cellObject As Object
Application.StatusBar = “Counter value: “ & For Each cellObject In Selection
counter
Application.Wait Now + cellObject.Formula =
TimeValue(“
TimeValue(“00:00:01”
00:00:01”) Application.Proper(cellObject)
Application.Proper(cellObject)
Next counter Next
Application.StatusBar = False End Sub
End Sub Nizam © Nizam ©

Penggunaan Exit For atau Exit Do Tugas - 1


‹ Kadang kita perlu keluar dari Loop
‹ Caranya:
Caranya: gunakan Exit For atau Exit Do ‹ Salah satu cara untuk mencari akar
Sub BigNumbers2()
Dim rowNum As Integer, colNum As Integer, currCell As Range persamaan f adalah dengan metode
rowNum = ActiveCell.Row Newton
colNum = ActiveCell.Column • Bila f(x)
f(x) = 0 adalah fungsi yang akan dicari
Set currCell = ActiveSheet.Cells(rowNum,
ActiveSheet.Cells(rowNum, ColNum)
ColNum) akarnya,
akarnya, dan xn adalah perkiraan akar f(x)
f(x)
Do While currCell.Value <> “ ” maka pendekatan nilai akar persamaan
If IsNumeric(currCell.Value)
IsNumeric(currCell.Value) Then berikutnya dapat dicari dengan rumus
If currCell.Value >= 1000 Then
currCell.Font.Color = VBAColor(“
VBAColor(“magenta”
magenta”) xn+1 = xn – f(xn )/f
)/f’(xn)
End If Di mana f’(xn) adalah nilai turunan fungsi di xn
Else
Exit Do ‘ bila bukan angka keluar dari Tuliskan prosedur dalam VBA untuk
Do loop mencari akar fungsi f(x)
f(x) = 0 Æ yang
End If merupakan fungsi yang dapat
rowNum = rowNum + 1
Set currCell = ActiveSheet.Cells(rowNum,
ActiveSheet.Cells(rowNum, colNum)
colNum)
didefinisikan dalam program (user-
(user-
Loop Nizam © defined) Nizam ©
End Sub

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