Microsoft Excel 2007
Microsoft Excel 2007
Programming
Bab I
Bab I
Pengenalan VBA
Pengenalan VBA
Apa
Apa itu
itu
VBA
VBA
Bab I
Bab I
Pengenalan VBA
Pengenalan VBA
Apa
Apa itu
itu
VBA
VBA
VBA, yang merupakan
VBA, yang merupakan
singkatan dari Vi
singkatan dari Vi
sual Basic
sual Basic
for
for
Applications, adalah sebuah bahasa pemrograman
Applications, adalah sebuah bahasa pemrograman
dikembangkan oleh Microsoft . Singkatnya, VBA
dikembangkan oleh Microsoft . Singkatnya, VBA
adalah alat yang kita
adalah alat yang kita
gunakan untuk
gunakan untuk
mengembangk
mengembangk
an
an
program-program yang akan
program-program yang akan
mengontrol Excel sehingga excel akan melakukan
mengontrol Excel sehingga excel akan melakukan
apapun yang kita perintahkan secara cepat dan
apapun yang kita perintahkan secara cepat dan
akurat
Apa yang bisa dilakukan dengan VBA
Melakukan suatu pekerjaan yang berulang-ulang, contoh membikin konfirmasi, jikatanpa VBA mungkin kita harus membuat lampiran secara manual untuk tiap KPP, trus membuat surat juga untuk tiap KPP, abis itu juga mem-printnya, namun dengan VBA anda cukup menyediakan data serta template dari surat dan lampiran maka dengan satu kali klik seketika juga akan selesai
• Mengotomasikan suatu pekerjaan yang komplex, contoh membuat suatu laporan keuangan dari ledger, kalo tanpa VBA mungkin melibatkan banyak sekali pekerjaan namun dengan VBA pekerjaan tadi diringkas jadi satu program dan bisa dipakai untuk tahun berikutnya bahkan Data WP yang lain sepanjang format datanya telah disesuaikan • Membuat customize command yang kalo memakai excel melibatkan beberapa kali
perintah, kemudian anda bikinkan pula tombol atau menu sehingga memudahkan kita dalam pekerjaan sehari2
• Menciptakan fungsi baru, misalnya fungsi penghitungan PPh 25, atau mengubah angka menjadi terbilang (mis: 1250 menjadi seribu dua ratus lima puluh rupiah)
• Menciptakan Ad-in yaitu pelengkap dari excel yang bisa berupa menu2 yang tidak ada di excel, yang dapat dikomersialkan. Misalnya : ASAP Utilities, Power Utilities, dll
• Menciptakan satu aplikasi yang lengkap, beserta template, menu, toolbar, dialog box maupun Help yang lengkap, misalnya GL for excel, Audit for excel, dll
Macro recording
Untuk meng-otomasikan pekerjaan diexcel kita tidak
perlu menjadi programmer VBA, kita bisa melakukan
dengan Macro recording,kita bisa merekam step by
step pekerjaan kita dan macro akan mengulanginya
dengan persis dan jauh lebih cepat
Developer Ribbon
Makro recorder maupun
VBE (visual basic editor)
terdapat di ribbon
“developer”, ribbon ini
secara default tidak muncul ,
untuk memunculkannya kita
lakukan cara sbb:
1. Klik Office button
(Tombol bulat berlogo
office di kiri atas excel)
2. Klik Excel Option
3. Pilih menu Popular, lalu
Tick mark Show
Developer tab in the
Ribbon.
Developer Ribbon
1. Developer Ribbon 2. Tombol untuk Record macros 3. Tombol untuk menjalankan macro 4. Tombol untuk menuju VB Editor 5. Untuk menambahkan list, check box, dan control lainnya ke worksheet6. Untuk menangani file xlm, import & export, dll
Step by Step Record Macros
1. Pilih sel mana saja di workbook aktif, lalu klik developer tab
2. Klik Record Macro,
Record Macro Dialog box akan muncul
3. Isi nama dari makro, mis: Name_Date
4. Klik shortcut key dan isi dengan Shift+N (makro bisa dijalankan dengan Ctrl+Shift+N)
5. Macro bisa ditaruh di workbook ini, personal workbook atau workbook lain
6. Description bisa diisi dengan keterangan,
misalnya “makro untuk
nulis nama dan tanggal
sekarang”
Step by Step Record Macros (2)
1.
Tulis nama
anda
2.
Tulis
“=now()”
,Pilih kedua
sel diatas
lalu format
bold dan size
20
3.
Stop
Menjalankan Macro
Pilih cell yang akan diterapkan macro
bersangkutan
Klik Developer Tab
Klik macros, maka akan muncul Macro dialog
box
1. Memilih nama macro yg akan dijalankan 2. Klik untuk menjalankan macro 3. Klik untuk menjalankan macro sambil debug
4. Klik untuk mengedit macro di VB Editor
5. Klik untuk mengedit properties dari macro seperti shortcut dan description
6. Untuk memilih workbook yg berisi macro
Relative and Macro Security
Relative and Macro Security
Option
Option
1.
1.
Untuk menentukan apakah lokasi cell bersifat
Untuk menentukan apakah lokasi cell bersifat
mutlak atau relatif
mutlak atau relatif
2.
Perbedaan antara absolute dan
Perbedaan antara absolute dan
relatif reference
relatif reference
Jika memakai Absolut Referensi Jika memakai Absolut Referensi
Range("C4").Select Range("C4").Select ActiveCell.FormulaR1C1 = "Nama ActiveCell.FormulaR1C1 = "Nama Anda" Anda" Range("C5").Select Range("C5").Select ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 = "=NOW()" "=NOW()" Range("C4:C5").Select Range("C4:C5").Select Selection.Font.Bold = True Selection.Font.Bold = True With Selection.Font With Selection.Font .Size = 20 .Size = 20 End With End With Range("D9").Select Range("D9").Select
Jika memakai relatif referensi Jika memakai relatif referensi
ActiveCell.Select ActiveCell.Select ActiveCell.FormulaR1C1 = "nama ActiveCell.FormulaR1C1 = "nama anda" anda" ActiveCell.Offset(1, ActiveCell.Offset(1, 0).Range("A1").Select 0).Range("A1").Select ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 = "=NOW()" "=NOW()" ActiveCell.Offset(-1, ActiveCell.Offset(-1, 0).Range("A1:A2").Select 0).Range("A1:A2").Select Selection.Font.Bold = True Selection.Font.Bold = True With Selection.Font With Selection.Font .Size = 20 .Size = 20
Macro Security
Macro Security
Untuk bisa Untuk bisa menjalankan menjalankan macro maka macro maka setting yang setting yang pertama jangan di pertama jangan ditick mark, untuk
tick mark, untuk
amannya pakai
amannya pakai
setting no. 2 yaitu
setting no. 2 yaitu
“disable all macros
“disable all macros
with
with notificationnotification”,”,
karena jika kita
karena jika kita
membuka file yg
membuka file yg
ada macronya
ada macronya
maka kita akan
maka kita akan
diberi pilihan
diberi pilihan
untuk
untuk
meng-enable atau
enable atau
men-disable
disable––kankan
macro tersebut
Assign macro to quick access
toolbar
1. Klik Customize Quick access button 2. Klik More Command
3. Pilih “Macros”
4. Pilih macros yang kita inginkan 5. Klik Add
6. Klik macro kita
7. Tombol untuk menggeser posisi toolbar 8. Klik Modify
9. Pilih gambar toolbar buat macro kita 10. Klik OK
Saving Macro
Workbook yang
berisi macro
harus disimpan
dalam format
“Excel macro
enabled
workbook”
(.xlsm) supaya
bisa diexekusi,
kalo nggak maka
macronya akan
dihapus oleh
excel
Garis besar dari VBA
Kita melakukan sesuatu di VBA baik merekam maupun
menulis kode di VBE (Visual Basic Editor)
VBA terdiri dari Sub Prosedure (kumpulan kode yang
melakukan aksi atas suatu obyek) serta Fungsi (kumpulan
kode yang menghasilkan suatu nilai)
VBA memanipulasi Obyek, didalam excel terdapat ratusan
obyek yang dapat kita perintah atau kita ubah nilainya ,
contoh obyek yang paling sering kita pakai antara lain:
Workbook, Worksheet, range, chart, dll
Obyek dalam excel disusun secara hierarki, artinya didalam
satu obyek bisa terdiri dari beberapa obyek yang lain, Obyek
yang paling tinggi adalah aplikasi excel sendiri yang disebut
“Application”
. Didalam Application terdapat obyek lain
antara lain seperti workbook obyek dan add-in obyek ,
didalam workbook obyek terdapat worksheet obyek, dst.
Untuk menunjuk ke suatu range dapat dipergunakan cara
sebagai berikut
Garis besar VBA
Jika kita tidak menyebutkan secara rinci maka excel akan
menganggap bahwa obyek yang dimaksud adalah yang
aktif
Jika kita tahu kalo book1.xlsx adalah workbook yang aktif
maka kita cukup menulis
Worksheets(“Sheet
1
”)
.
Range(“A
1
”)
Jika kita tahu kalo Sheet1 adalah sheet yang aktif maka
kita cukup menulis
Garis besar VBA
Obyek memiliki Method, Properties, serta Event. Method adalah
action yang akan dilakukan oleh obyek tersebut misalnya obyek
workbook memiliki
“Open”,”Save”
Method
Properties adalah setting yang dimiliki oleh Obyek, Misalnya
Workbook memiliki properties
“Name”,”Path”, “Saved”
Events adalah peristiwa yang terjadi pada suatu obyek, misalnya
workbook memiliki
“Before_save”, “Before_save”, “Activate”
event
VBA memiliki konstruksi seperti bahasa pemrograman modern
karena merupakan turunan dari bahasa Visual basic yang sangat
terkenal, sehingga kita bisa melakukan banyak hal2 ajaib seperti
membuat browser didalam excel atau pemutar film dan MP3
Bab II: Pengenalan VB Editor
Pengenalan antar muka VB Editor
Setting2 yang perlu diketahui di VB Editor
Kustomisasi VB Editor
Proteksi VB Project
Menyimpan File VB Project
VB Editor
Macro yang kita buat via recorded macro sudah bisa
kita jalankan, namun masih jauh dari sempurna
karena
Kondisi fixed
jika ada error maka tidak jalan
Tidak bisa berinteraksi dengan user, dll
Oleh karena itu kita perlu memodifikasi macro
tersebut dengan mengetik code secara manual
Cara membuka VBE
1.
Cara 1, Klik developer tab, klik tombol
“visual basic”
2.
Cara 2, Shortcut Alt+F11
3.
Cara 3, Buka macro dialog box (Alt+F8), pilih
Visual Basic Editor
1. Project Explorer 2. Properties 3. Code Window 4. Userform window 5. Object Browser 6. Immediate 7. Locals 8. WatcherVB Editor
1. Project Explorer windowProject Explorer menampilkan semua workbook yang terbuka (termasuk hidden dan add-ins) dalam bentuk folder2, click tanda “+” untuk membukanya, didalamnya
terdapat semua object seperti worksheet, Modules, userform & Class, klik 2x untuk menampilkan isi nya
Shortcut untuk menampilkan Ctrl+R
2. Properties Window
berisi setting untuk project, userform beserta control2nya, dan workbook & Worksheet
3. Code window
Biasa disebut juga Module windows, berisi semua VBA Code, semua Object di project akan memiliki code window masing2, Untuk membuka code yang berhubungan
dengan object klik 2x object bersangkutan
6. Immediate window
untuk menampilkan tekan Ctrl+G atau View➪Immediate Window command. Window ini biasa digunakan untuk eksekusi perintah langsung atau untuk fungsi debugging
Customizing VB Editor 01
Code Settings
Auto Syntax Check — menentukan apakah VBA akan mengecek kebenaran penulisan code setiap kali kita menulis satu baris kode, akan muncul peringatan mengenai apa yang salah dengan code kita dan kita bisa klik help untuk
penjelasan lebih lanjut – bagus buat pemula
Require Variable Declaration —menentukan apakah
setiap variabel perlu dideklarasikan dahulu sebelum eksekusi, akan menampilkan “option explicit untuk tiap modul baru
Customizing VB Editor 01
Code Settings
Auto List Member—
menampilkan secara otomatis sub object, methode, dan
properties dari object yang kita ketik
Auto Quick Info—
menampilkan informasi serta parameter dari fungsi yang kita ketik
Auto Data Tips—
Menampilkan isi dari variabel pada saat ekseckusi/ running, hanya muncul saat break mode
Auto Indent—untuk indent setiap awal baris, baris berikutnya akan mengikuti indent diatasnya
Tab Width—lebar tiap kali indent/tab
Customizing VB Editor 01
Window Settings
Drag-and-Drop Text
Editing
—
buat drag &
Drop editing
Default to Full Module
View
—
menentukan
apakah semua Code akan
berbagi dalam satu code
window ataupun satu
window tiap satu
prosedur
Procedure Separator
—
menampilkan separator
untuk menandai tiap
Customizing VB Editor 02
Customizing VB Editor 02
Code Colors
Code Colors
Determines the foreground and background colorsDetermines the foreground and background colors
used for the type of text selected in the list box.
used for the type of text selected in the list box.
Color TColor Text ext ListList——Lists the text items that haveLists the text items that have
customizable colors.
customizable colors.
ForegroundForeground——Specifies the foreground color forSpecifies the foreground color for
the text selected
the text selected in the Color Tin the Color Text List.ext List.
BackgroundBackground——Specifies the background color forSpecifies the background color for
text selected
text selected in the Color Tin the Color Text Listext List
IndicatorIndicator——Specifies the margin indicator Specifies the margin indicator color.color.
Font
Font
Specifies the font used for all code.Specifies the font used for all code.
Size
Size
Specifies the size of the font used for code.Specifies the size of the font used for code.
Margin Indicator Bar
Margin Indicator Bar
Makes the margin indicator bar visible or invisible.Makes the margin indicator bar visible or invisible.
Sample
Sample
Displays sample text for the font, size, and colorDisplays sample text for the font, size, and color
settings.
Customizing VB Editor 03
Customizing VB Editor 03
Form Grid Settings/ untuk pembuatan userForm Grid Settings/ untuk pembuatan user
form
form
Show GridShow Grid——menentukan apakah gridmenentukan apakah grid
akan ditampilkan dalam userform, hal ini
akan ditampilkan dalam userform, hal ini
untuk memudahkan dalam design
untuk memudahkan dalam design
Grid UnitsGrid Units——menentukan lebar grid (dlmmenentukan lebar grid (dlm
pixel)
pixel)
Align Controls to GridAlign Controls to Grid——Otomatis akanOtomatis akan
meletakkan control ke grid yang
meletakkan control ke grid yang
terdekat/untu
terdekat/untuk k mempermudamempermudah h designdesign
Show ToolTipsShow ToolTips
Displays ToolTips for the toolbar buttons.Displays ToolTips for the toolbar buttons.
Collapse Proj. Collapse Proj. Hides WindowHides Windowss
Menentukan apakah jika folder di ProjectMenentukan apakah jika folder di Project
explorer ditutup juga akan ikut menutup
explorer ditutup juga akan ikut menutup
code window yang bersangkutan
Customizing VB Editor 03
Customizing VB Editor 03
Edit and ContinueEdit and Continue
Notify Before State LossNotify Before State Loss——jika code error maka akanjika code error maka akan
menampilkan peringatan tentang data/ variable yang
menampilkan peringatan tentang data/ variable yang
direset pada saat eksekusi diteruskan
direset pada saat eksekusi diteruskan
Error TrappingError Trapping
Untuk penanganan masalah errorUntuk penanganan masalah error
Break on All ErrorsBreak on All Errors——semua error akan ditanganisemua error akan ditangani
sistem (break mode) tidak perduli apakah ada
sistem (break mode) tidak perduli apakah ada errorerror
handle code atau error ada
handle code atau error ada di Class Moduledi Class Module
Break in Class ModuleBreak in Class Module——hanya akan ditangani olehhanya akan ditangani oleh
sistem jika terjadi di class module
sistem jika terjadi di class module
Break on Unhandled ErrorsBreak on Unhandled Errors——hanya akan ditanganihanya akan ditangani
oleh sistem (break mode) jika tidak ada
oleh sistem (break mode) jika tidak ada handle errorhandle error
code.
code.
CompileCompile
Compile On DemandCompile On Demand——sebelum program runningsebelum program running
akan dicompile lebih dulu agar berjalan lebih cepat
akan dicompile lebih dulu agar berjalan lebih cepat
dan untuk melihat apakah ada error atau tidak
dan untuk melihat apakah ada error atau tidak
Background CompileBackground Compile——compiles akan dijalankancompiles akan dijalankan
secara background
Customizing VB
Editor 04
Windows disini akan
di-dock/ ditempelkan di satu
tepi dan tidak dapat
dipindahkan kemana2,
kalo di
–
undock berarti
window akan bebas
dipindahkan ke mana2 ,
hal ini berguna untuk
menambah space pada
Change VBA Project
Pilih Project di Project
Explorer Window
Klik kanan untuk
memunculkan menu
Pilih dan klik
VBA Project Properties 01
Project Name bisa diisi dengan
nama yang diinginkan yang
mudah dimengerti dan
dibedakan dengan project yg
lain (unique)
Project description juga
sebaiknya diisi dengan
penjelasan secukupnya
Help file name dan helpid diisi
jika project kita memiliki file
help sendiri, kalau tidak
sebaiknya dibiarkan saja (nilai
default)
Conditional compilation
biasanya diisi untuk keperluan
debugging
Proteksi code VBA
Tick mark “lock project
for viewing” agar kode
vba anda tidak bisa oleh
orang lain
Lalu diisi passwordnya
dan Confirm Password
Code VBA tetap bisa
dijalankan namun tidak
bisa dilihat codenya
Untuk melihat code-nya
maka kita harus
memasukkan
passwordnya
Membuat new module
Pilih project module
yang diinginkan (buat
workbook baru kalo
belum ada)
Klik kanan untuk
memunculkan menu,
pilih insert->Module
Atau pilih insert menu/
insert button dari
toolbar lalu pilih
module
Membuat prosedure baru
Pilih module
yang akan
ditambahkan
prosedure
Klik menu
Insert->Procedure
Add new procedure
Isi name dangan nama
procedure yang
diinginkan
Pilih sub di Type
(default)
Pilih public di Scope
(Default)
Add new procedure
Prosedure ada Sub prosedure dan Function Procedure, sub biasanya
melibatkan suatu aksi terhadap obyek lain atau melakukan sesuatu
sementara fungsi adalah prosedure yang menghasilkan suatu nilai
atau kumpulan nilai (array)
Public artinya bisa diakses oleh sub lain diluar module ini, kalo private
berarti Cuma bisa diakses oleh sub/function lain didalam module
bersangkutan
Bab III
Excel Obyek dan VBA Sub & Procedure
Intoducing Excel Object Model
Merujuk ke Obyek
VBA Sub dan Fuction Procedure
How to naming
Syntax
Introducing the Excel
Object Model
VBA adalah pemrograman yang Obyek oriented (OOP/Object Oriented
Programming) artinya VBA mendefinisikan excel sebagai sekumpulan obyek2 yang memiliki methode dan properties serta event2 yang dapat dimanipulasi sedemikian rupa
Obyek yang paling atas/ induk adalah excel itu sendiri yang dalam VBA disebut sebagai “Application” yang memiliki methods serta properties yang akan mengatur bagaimana excel tersebut dioperasikan
Object excel memiliki obyek lain (turunan/ sub obyek) yaitu antar lain workbook, lalu workbook sendiri memiliki method dan properties sendiri serta memiliki sub obyek yaitu antara lain worksheets, dimana
workshetts juga memiliki sub obyek yaitu al: range/cells
Application (Excel)
Window Commandbar Workbook
Worksheer
Range Hyperlink
Obyek hirarki dari font object
Disini terlihat bahwa
excel/application
obyek memiliki sub
obyek workbook
Workbook memiliki
member a.l: worksheet
Worksheet memiliki
sub object range
Range memiliki object
Merujuk ke Object
Kita bisa merujuk ke suatu object dengan cara bertingkat,
misalnya
Workbooks(“book1.xlsx”).Worksheets(“sheet1”).range(“A1”)
Jika obyek sebelumnya tidak ditulis maka Excel
mengasumsikan bahwa obyek yang aktif adalah yang
dimaksud, jadi bila workbook yang aktif adalah “book1.xlsx”
serta sheet yang aktif adalah “sheet1” maka kita cukup
menulis range(“A1”)
Workbooks artinya sekumpulan (Collection) workbook yang
terbuka pada saat ini, kalo worksheets juga berarti collection
dari worksheet (tanpa “s”/jamak). Untuk merujuk ke
worbook tertentu maka bisa dipakai nama dari workbook
VBA Sub and Function Procedures
A Sub procedure is a
group of VBA
statements that
performs an action (or
actions) with Excel.
Contoh:
Sub ShowMessage()
MsgBox “That’s all folks!”
End Sub
A Function procedure
is a group of VBA
statements that
performs a calculation
and returns a single
value.
Contoh:
Function CubeRoot(number)
CubeRoot = number ^ (1 / 3)
End Function
How to naming Sub/Function procedure
Kita bisa menggunakan huruf dan nomor sebagai nama, tapi karakter
pertama haruslah huruf
Tidak boleh ada spasi atau titik (“.”)
Tidak boleh ada karakter #, $, %, &, @,^, *, !
Karakter lain seperti /,?,<,>,-,+ bisa digunakan tapi bisa menimbulkan
kebingungan karena merupakan operator jadi paling aman adalah hanya
gunakan huruf,nomor dan underscore( _ )
Huruf besar sama huruf kecil dianggap sama, tapi biasakan untuk
menggunakan huruf besar pada karakter pertama untuk lebih
menguatkan arti
Tidak boleh menyamai fungsi yang sudah ada di excel misalnya SUM,
AVERAGE,FIND, dll serta jangan menyamai nama sel misalnya “A1” atau
“R1C1”
Jangan lebih dari 255 karakter
Nama sebaiknya mencerminkan aksi/ tujuan dari sub/function misalnya:
ProcessData, PrintReport, Sort_Array, or CheckFilename.
Syntax
dari sub prosedure
[Private|Public|Friend] [Static]Subname[(arglist )] [statements]
[Exit Sub] [statements]
End Sub
TheSubstatement syntax has these parts:
Public Sub ini bisa diakses oleh prosedure/function lain di semua module
Private Sub ini hanya bisa diakses oleh sub/function di module yang sama
Friend Hanya digunakan di class module
Static Variable yang ada didalam sub ini nilainya disimpan sehingga tidak berubah
arglist Variable atau sekumpulan variabel yang merupakan argumen dari sub, dipisahkan dengan koma, syntax:
[Optional] [ByVal| ByRef ] [ParamArray] varname[( )] [As
How to run a sub procedure
Klik didalam sub prosedure yang diinginkan, lalu klik menu Run➪Run Sub/UserForm , shortcut F5,
atau klik tombol Run Sub/UserForm di toolbar
Pilih list sub procedure di Macro dialog box lalu klik “run”
Klik Toolbar/ribbon/quick access toolbar, Shape yang telah di assign dengan sub prosedur
Dari Sub procedure lain
Secara otomatis begitu membuka, menutup, mensave workbook , berpindah sheet, berpindah range, merubah isi cell tertentu, dll sesuai dengan events dari tiap object di excel
Dari the Immediate window in the VBE. Ketik aja sub prosedur yang diinginkan dan tekan enter
Contoh
Sub panggil_fungsi() Dim cb, cbroot 'minta input dari user
cb = InputBox("masukkan bilangan yg mo dicari akar pangkat tiga-nya")
‘Debug.Print cb If cb <> "" Then cbroot = CubeRoot(cb) MsgBox cbroot Else Exit Sub End If End Sub
How to run a Function
procedure
Dari sub/ function prosedure yang lain
Diketik di worksheet sebagai fungsi
Contoh
Function CubeRoot(number)
CubeRoot = number ^ (1/3)
End Function
Bab IV. Essential VBA
Language Elements
Comments
Variable
Constant
Data Type
Array
Comments
Comments merupakan code vba yang paling simple, gunanya untuk
memberikan penjelasan atas suatu baris kode/ variable/sub/ function
Cara penggunaan Comment cukup dengan memberikan karakter ‘ diawal maka
semua karakter yang ada setelah tanda ‘ akan diabaikan oleh VBA
Comment bisa diberikan diatas baris kode atau di sebelah kanan dari baris kode
yang akan diberi penjelasan
Contoh:
‘ prosedur untuk menghasilkan akar pangkat tiga dari angka yang diberikan oleh user
Sub panggil_fungsi() Dim cb, cbroot 'minta input dari user
cb = InputBox("masukkan bilangan yg mo dicari akar pangkat tiga-nya") 'Debug.Print cb
If cb <> "" And WorksheetFunction.IsNumber(cb) Then ' jika user meng-klik tombol cancel cbroot = CubeRoot(cb) MsgBox cbroot Else Exit Sub End If End Sub
Hal ini juga berguna dalam pemrograman dimana jika kesalahan code kita tidak
Variable
Variable bisa didefinisikan sebagai lokasi
penyimpanan/ storage yang ada pada memory
yang diperlukan agar suatu proses bisa berjalan
Pada contoh diatas variable
cb
digunakan untuk
tempat menyimpan dari user input, dimana
variabel ini bisa dimanipulasi lebih lanjut
Suatu variabel bersifat read write artinya bisa di
assign value tertentu (memakai operator =)
cb = InputBox("masukkan bilangan yg mo dicari akar pangkat tiga-nya")
dan bisa diambil valuenya untuk diproses
Declaring Variable
Kita mendeklarasikan variabel agar program berjalan lebih efisien dan lebih cepat, juga agar kita tidak salah dalam mengetik nama
variabelmenggunakan auto correct pada editor vba (Ctrl+Space)
Juga jika dideklarasikan diawal prosedur/ awal module bisa diberi penjelasan yang lengkap sehingga programmer bisa lebih memahami program secara keseluruhan
Syntax :
Dim varname[([subscripts])] [As type] Misalnya
Dim DasarPengenaanPajak as integer Dim Tarif_Pajak(1 to 3) as integer Dim Tarif_Pajak(3) as integer Dim Pajak_Terutang
[([subscripts])] artinya jika kita mendeklarasikan array maka memakai kurung awal & akhir dan diisi jumlah array-nya, ingat bahwa VB memakai dasar 0 , jadi kalo (3) artinya ada 4 nilai (0-3), kalo (1 to 3) artinya 3 nilai
Kalo tidak diberi type datanya maka berarti adalah varian, varian adalah type data yang sangat flexible , bisa disi apa aja, string, number, boolean, dll namun speednya kurang dan boros memory
Scope dari variable
Scope artinya jangkauan atau luas dari variable
Procedure only, dideklarasikan didalam prosedur,
hanya bisa digunakan dan dikenali di dalam prosedur
tersebut, begitu program keluar dari prosedure yang
bersangkutan maka nilai variabel akan direset ke nilai
awal
All procedure in a Module, bisa dipakai dan dikenali
oleh semua prosedur didalam suatu module,
dideklarasikan diluar prosedur dan diawal module
All Procedure in All Module, bisa digunakan oleh semua
prosedur dalam file VBA bersangkutan. Dideklarasikan
di awal module dan diberi prefik ‘Public’
Scope dari variable
Normalnya semua variabel akan direset ke angka awal
deklarasi jika program/prosedure berakhir, jika kita ingin
agar angka/nilai dalam variabel tidak hilang maka kita
menambahkan “static” pada pendeklarasian variabel
Misal:
Static intCounter as integer
(kata “Dim” diganti “Static”)
Variabel static nilainya tidak akan direset kecuali workbook
ditutup dan dibuka kembali, selama workbook masih
How to naming variable
Kita bisa menggunakan huruf dan nomor sebagai nama, tapi karakter
pertama haruslah huruf
Tidak boleh ada spasi atau titik (“.”)
Tidak boleh ada karakter #, $, %, &, @,^, *, !
Karakter lain seperti /,?,<,>,-,+ bisa digunakan tapi bisa menimbulkan
kebingungan karena merupakan operator jadi paling aman adalah hanya
gunakan huruf,nomor dan underscore( _ )
Huruf besar sama huruf kecil dianggap sama, tapi biasakan untuk
menggunakan huruf besar pada karakter pertama untuk lebih
menguatkan arti
Tidak boleh menyamai fungsi yang sudah ada di excel misalnya SUM,
AVERAGE,FIND, dll serta jangan menyamai nama sel misalnya “A1” atau
“R1C1”
Jangan lebih dari 255 karakter
Menggunakan prefik scope (public,private,static) serta prefik type data
(integer, single, boolean)
Nama sebaiknya mencerminkan aksi/ tujuan dari variable misalnya:
intCounter, blnWorksheet_Open, mstrFilePath
Constant
Constant/Konstanta adalah kebalikan dari variabel dimana variabel
nilainya berubah2 selama program berjalan maka constant nilainya fixed
selama program berjalan
Konstanta digunakan jika dalam program dipakai nilai tertentu beberapa
kali, misalnya kalimat “Direktorat Jenderal Pajak” atau tarif pajak 15%
sering dipakai maka lebih efisien jika nilai2 diatas disimpan di konstanta
daripada kita mengetik nilai tsb secara manual beberapa kali, selain untuk
menghindari kesalahan juga membuat program lebih gampang
dimengerti
Syintax :
[
Public
|
Private
]
Const
constname
[
As
type]
=
expression
Public/private hanya boleh dipakai di module level declaration, tidak boleh di
dalam prosedur
Contoh
Public Const strDJP as string = “
Direktorat Jenderal Pajak”
Array
Array adalah sekumpulan variabel dengan nama sama serta type
data sama
Untuk merujuk ke data tertentu maka digunakan index, di vb
array adalah berbasis nol jadi jika ditulis data(5) berarti ada 6 nilai
yaitu data(0), data(1),..,data(5) kecuali dideklarasikan dengan
data(1 to 5) artinya ada 5 data
Syntax :
Dim
varname
(
[
subscripts
]
)
[
As
type
]
Contoh :
Dim strNama(1 to 100) as string
Dim intSales() as integer
Dim lngData(1 to 12, 1 to 100) as long
Kalo array () artinya bisa diisi dengan berapapun jumlah
datanya
array dinamis
Array juga bisa multi dimensi, kalo contoh diatas maka datanya
ada 12x100=1200 data, dari lngData(1,1) sampat lngData(12,100)
Memasukkan data ke array
Bisa menggunakan statement For ..Next
Dim idx as integer
Dim strName(1 to 3) as string For idx= 1 to 3
strName(idx)=inputbox(“isikan nama pegawai)
next
Memakai array function
strName=Array(“unyil”, “usrok.”ucrit”)
Atau manual, satu per satu
strName(1)=“Unyil”
strName(1)=“usrok”
strName(1)=“Ucrit”
Bab V. Working with Range
Objects
Inti dari excel adalah cells yang diwakili oleh
Object Range. Range meliputi satu cells
ataupun sekelompok cells/ selection yang
terdapat pada worksheet
Merujuk ke range
Merujuk ke satu cell
Range(“A1”)
Merujuk ke sekumpulan cells
Range(“A1:C100”) atau Range(“A1”,”C100”)
Merujuk ke nama range
Range(“myrange”)
Merujuk ke satu/lebih baris/satu kolom
Range(“c:c”)
Range(“3:5”)
Contoh diatas mengasumsikan bahwa yang dirujuk
adalah range yang ada di worksheet aktif. Untuk
menunjuk ke workbook lain atau worksheet lain
Workbooks(“book1.xlsx”).Worksheets(“sheet1”).Range(“A1”)
Untuk merujuk lebih dari satu range, digunakan koma
Merujuk ke range memakai Cells
property
Cells disini merupakan property dari worksheet yang akan merujuk
ke cells Object
Syntax
Worksheets(idx).cells(row,column)
Untuk menunjuk ke sel “A1”
Worksheets(1).Cells(1,1)
Ada satu Lagi Cells yang merupakan property dari range object
Syntax
Worksheets(idx).Range(idx).cells(row,column)
Kalau disini maka argumen row dan column merujuk ke range bukan ke
worksheet
Worksheets(1).cells(1,1)
sel “A1”
Merujuk ke range memakai Offset
property
Offset merupakan property dari range object , yang
akan merujuk ke cells lain dengan jarak rows dan
column dari range awal
Syntax
Range(idx).offset(rows,columns)
Misal:
Range(“A1”).offset(2,3)
cells “D4”
Rows/Columns bisa berisi angka positif, negatif, dan
Nol, kalo positif berarti kebawah/kekanan, negatif
berarti keatas/kekiri, nol berarti diam
Misal
Range(“E10”).offset(-2,3)
cells “H8”
Range(“E10”).offset(-2,0)
cells “E8”
Some Useful Range Object
Properties
Value property
Text Property
Count Property
Address Property
HasFormula
Font
Interior
Formula
NumberFormat
Value Property
Property ini bersifat read write artinya bisa
untuk mengetahui nilai dari suatu sel (single
sel , jika terdiri dari banyak sel maka akan
error), atau mengubah nilai dari sel tersebut
(berlaku untuk range tsb)
Misal:
Msgbox Range(“A1:C10”).value
Error
Msgbox Range(“A1:C10”).Cells(1,1).value
success
Range(“A1:C10”).value
=6
mengubah semua sel
Text Property
Bersifat read only
Menyajikan informasi yang terlihat dilayar,
misalnya di sel “A1” kita ketik 12.5 dan diberi
format dollar dan 2 angka dibelakang koma
maka
Range(“A1”).text
$ 12.50
Count property
memberikan informasi berapa
jumlah sel yang ada di range
Address
memberikan informasi alamat dari
range, dalam bentuk string, serta bentuk absolut
Hasformula
memberikan nilai yes/no (boolean)
apakah suatu sel ada rumusnya atau tidak
Font Property
menghasilkan font object yang
memiliki property2 seperty bold, italic, fontsize,
dll yang bisa dimanipulasi
Interior Property
juga menghasilkan interior
property berisi border,background,dll
Formula property
menghasilkan string berisi
formula dari sel bersangkutan
Number Format
menghasilkan string berisi
number format dari sel bersangkutan, juga bisa
diubah nilainya (read write)
Some Useful Range Object
Methods
Select
methods
akan memilih range yang
bersangkutan, kalo range ada di worksheet non aktif
maka akan error, oleh karena itu maka harus
diaktifkan dulu
Worksheets(“sheet1”).range(“A1”).select
Code diatas pasti error maka diganti dng:
Worksheets(“sheet1”).activate
range(“A1”).select
Untuk memilih sel bisa dipakai goto methods dari
application object, dimana tidak perlu mengaktifkan
worksheet tujuan
The Copy and Paste methods, contoh kode
Sub CopyRange()
Range(“A1:A12”).Select
Selection.Copy
Range(“C1”).Select
ActiveSheet.Paste
End Sub
Copy adalah methods dari range namun paste
adalah method dari worksheet, selection artinya
range yang telah kita pilih dengan select methods
Code diatas bisa kita singkat dng kode berikut ini
karena copy methods tidak memerlukan select
method lebih dulu baik untuk copy dan paste-nya
Clear Methods
menghapus isi dan format
dari cell
Delete methods
menghapus cell dan shift
cell disebelah bawahnya/kananya untuk
mengisi cell yang hilang
Sort Methods
mensortir range sesuai
urutan yang dikehendaki
Merge methods
menggabungkan dua atau
lebih range
PasteSpecial Methods
paste value dari
memory ke cell tujuan, bisa paste value, paste
format, paste link, dll
Bab VI.
Using VBA and
Worksheet Functions
Function adalah suatu procedure yang
melakukan prses dan menghasilkan suatu
nilai/array
Fungsi bisa berasal dari
VBA function
Excel Function
Using Excel Function
Walaupun VBA telah memiliki function yang begitu banyak namun kadang2 ada yang kurang lengkap menurut kita atau ada fungsi lain yang di excel dibuat secara lebih mudah, misalnya SUM, dng vba agak repot karena harus menjumlah angka satu persatu dng looping padahal dng fungsi excel SUM, begitu gampang
Semua fungsi yang biasa kita gunakan diexcel bisa diakses di VBA dengan application object
Syntaxnya adalah: “Application.worksheetfunction.” lalu disambung dengan fungsi excel misalnya sum,avg, max, dll
Misalnya
Total = Application.WorksheetFunction.Sum(Range(“A1:A12”))
Kode diatas bisa disingkat menjadi
Total = WorksheetFunction.Sum(Range(“A1:A12”)) Total = Application.Sum(Range(“A1:A12”))
Kalo diexcel untuk menggunakan rumus sum kita menggunakan
mouse/keyboard untuk memilih range maka di VBA kita menggunakan object Range
Fungsi2 diexcel yang bisa dipakai, bisa dilihat di Object
browser, caranya masuk ke VB editor, tekan F2 (atau dng
menu view) cari di Classes
WorksheetFunction, maka di
sebelah kanannya akan muncul fungsi2 yang ada di excel
Semua fungsi di excel akan tersedia kecuali di VBA juga ada
fungsi yang sama
Bab VII. Controlling Program
Flow and Making Decisions
GoTo statement
Jumps to a particular statement
If-Then structure
Does something if something
else is true
Select Case
Does any of several things, depending
on something’s value
For-Next loop
Executes a series of statements a
specified number of times
Do-While loop
Does something as long as
something else remains true
Do-Until loop
Does something until something
else becomes true
GoTo statement
GoTo Statement merupakan cara yang akan secara langsung merubah
aliran/flow dari program menuju baris kode tertentu yang ditandai
dengan label (Nama diakhiri dengan tanda titik dua sebagai entry point)
Misal:
Sub GoToDemo()
UserName = InputBox(“Enter Your Name: “)
If UserName <> “Bill Gates” Then GoTo WrongName MsgBox (“Welcome Bill...”)
‘ ...[More code here] ...
Exit Sub WrongName:
MsgBox “Sorry. Only Bill Gates can run this.”
End Sub
Goto Statement seharusnya tidak boleh dipakai dalam program kecuali
untuk menangani error (seperti kode diatas) hal ini dikarenakan Goto
akan membuat program menjadi tidak berstruktur yang akan
If...Then...Else Statement
Syntax:
If condition Then statements [Else elsestatements]
Misal :
If Time < 0.5 Then MsgBox “Good Morning” Else MsgBox “Good Afternoon
”
Atau
If Time < 0.5 Then
MsgBox “Good Morning”
Else
MsgBox “Good Afternoon”
End if
Jika lebih dari 2 option maka bisa memakai syntax
Sub GreetMe5()Dim Msg As String If Time < 0.5 Then
Msg = “Morning”
ElseIf Time >= 0.5 And Time < 0.75 Then
Msg = “Afternoon”
Else
Msg = “Evening”
End If
MsgBox “Good “ & Msg
Select Case Statement
If Then berguna kalau jumlah option hanya 2 atau 3, kalau lebih dari itu akan membuat program susah dipahami, untuk itu kita menggunakan Select Case Statement
Syntax:
Select Case testexpression [Case expressionlist-n [statements-n]] . . . [Case Else [elsestatements]] End Select Contoh: Sub ShowDiscount3()
Dim Quantity As Integer Dim Discount As Double
Quantity = InputBox(“Enter Quantity: “)
Select Case Quantity Case 0 To 24 Discount = 0.1 Case 25 To 49 Discount = 0.15 Case 50 To 74 Discount = 0.2 Case Is >= 75 Discount = 0.25 End Select
MsgBox “Discount: “ & Discount
For..Next Statement
Syntax:
For counter = start To end [Step stepval]
[statements]
[Exit For]
[statements]
Next [counter]
Contoh (mengisi 100 cell dng angka random)
Sub FillRange()
Dim Count As Long
For Count = 1 To 100
ActiveCell.Offset(Count - 1, 0) = Rnd
Next Count
Do..Loop Statement
Do..Loop statement digunakan untuk loop dimana kita tidak tahu kapan selesainya / berapa kali looping
Syntax: Do [While|Untilcondition] [statements] [Exit Do] [statements] Loop
Misal: (Program ini akan menggandakan nilai cell, dan begitu cell kosong maka akan berhenti)
Sub DoWhileDemo()
Do While ActiveCell.Value <> Empty ActiveCell.Value = ActiveCell.Value * 2 ActiveCell.Offset(1, 0).Select
Loop End Sub
Code dengan Do Until..Loop
Sub DoUntilDemo() Do Until IsEmpty(ActiveCell.Value) ActiveCell.Value = ActiveCell.Value * 2 ActiveCell.Offset(1, 0).Select Loop End Sub
Looping through a Collection
Di VBA masih ada lagi looping yg sangat berguna yaitu Loop through a collection, kita tahu bahwa object diexcel seperti cell memiliki collection yaitu cells(kumpulan beberapa cell),
worksheet memiliki collection worksheets (semuanya diberi akhiran sjamak), jika kita ingin looping cells kita bisa memakai cara merujuk ke cell satu persatu via index mereka atau dng cara mudah via looping through colllection
Misal: program mengisi sekumpulan cells yang kita pilih dengan nilai urut Dim baris as integer, kolom as integer
For baris=1 to selection.rows.count
for kolom=1 to selection.columns.count counter=counter+1
selection.cells(baris,kolom).value=counter next kolom
Next
Kalo menggunakan collection jauh lebih mudah Dim sel as range
For each sel in selection.cells
Counter=counter+1 Sel.value=counter
Next
Contoh lain: mendelete row 1 untuk setiap worksheet in workbook yang aktif Sub DeleteRow1()
Dim WkSht As Worksheet
For Each WkSht In ActiveWorkbook.Worksheets WkSht.Rows(1).Delete
Next WkSht End Sub
Bab VIII. Automatic Procedures
and Events
Ini merupakan salah satu cara untuk mengeksekusi/
menjalankan macro/sub procedure, yaitu lewat event-2
yang dimiliki oleh obyek2 yang ada pada excel
Contoh:
A workbook is opened or closed.
A window is activated.
A worksheet is activated or deactivated.
Data is entered into a cell or the cell is edited.
A workbook is saved.
A worksheet is calculated.
An object, such as a button, is clicked.
A particular key or key combination is pressed.
A particular time of day occurs.
Membuat prosedur yang dijalankan setiap kali
workbook dibuka
Buka VBE
Pilih Workbook yang
diinginkan di project explorer
Pilih folder “ThisWorkbook”
dan klik2x / klik kananView
Code
Di Code Windows pilih
“Workbook” di Dropdown
yang sebelah kiri, di
Dropdown yang kanan pilih
“Open”
Secara otomatis akan dibuat
sub prosedure dng judul
Membuat prosedur yang dijalankan setiap kali
workbook dibuka
Entry code berikut ini Private Sub Workbook_Open()
Dim Msg As String
If Weekday(Now) = 6 Then
Msg = "Today is Friday. Make sure that you " Msg = Msg & "do your weekly backup!" MsgBox Msg
Else
MsgBox "Friday is your Weekly backup", vbCritical, "Weekly Backup"
End If
End Sub
Save, Lalu reopen workbook, maka akan keluar kotak dialog sesuai dengan apakah hari ini jumat/ bukan
The BeforeClose event for a workbook
Program ini akan menanyakan apakah backup file akan dibikin
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Msg As String
Dim Ans As Integer Dim FName As String
Msg = “Would you like to make a backup of this file?”
Ans = MsgBox(Msg, vbYesNo) If Ans = vbYes Then
FName = “F: \BACKUP\” & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs FName End If
End Sub
Program ini akan mencegah orang menyimpan dng nama lain
(Save As)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI _ As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox “You cannot save a copy of this workbook!”
Cancel = True End If
Program ini akan mencegah user untuk
berpindah ke sheet Chart
Dim OldSheet As Object
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Set OldSheet = Sh
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If TypeName(Sh) = “Chart” Then
MsgBox “Sorry, you can’t activate any charts.”
OldSheet.Activate End If
End Sub
Program ini akan mengeluarkan dialog format angka jika sel yang
diklik kanan berisi angka (cancel=true artinya shortcut menu tidak
akan muncul)
Private Sub Worksheet_BeforeRightClick (ByVal Target As Excel.Range, Cancel As Boolean)
If IsNumeric(Target) And Not IsEmpty(Target) Then Application.Dialogs(xlDialogFormatNumber).Show Cancel = True
End If End Sub
Program ini akan mencegah user mengisi cell
“A1” dengan non numeric
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = “$A$1” Then
If Not IsNumeric(Target) Then
MsgBox “Enter a number in cell A1.” Range(“A1”).ClearContents
Range(“A1”).Activate
End If End If End Sub
Program ini akan memberikan peringatan tiap jam 3:00
Sub SetAlarm()
Application.OnTime 0.625, “DisplayAlarm”
End Sub
Sub DisplayAlarm() Beep
MsgBox “Wake up. It’s time for your afternoon break!”
Bab IX.
Simple Dialog Boxes
Kita Akan membahas :
MsgBox
InputBox
GetOpenFile
GetSaveFile
MsgBox Function
Syntax
MsgBox(
prompt
[,
buttons
] [,
title
] [,
helpfile
,
context
]
)
Msgbox adalah suatu fungsi yang menghasilkan
suatu nilai yaitu vbOk,vbCancel,vbRetry,dll
tergantung tombol mana yang dipilih oleh user
Prompt berisi string/kalimat yang merupakan isi dari
msgbox
Button merupakan tombol yang akan muncul di
msgbox dialog
Title merupakan Caption/ Judul dari Dialogbox yang
muncul
Helpfile & Context berhubungan dengan help yang
telah disiapkan
Msgbox Function
Nilai Konstant pada button di
Contoh Code:
Dim Msg, Style, Title, Help, Ctxt, Response, MyString Msg = "Do you want to continue ?" ' Define message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons. Title = "MsgBox Demonstration" ' Define title.
Help = "DEMO.HLP" ' Define Help file. Ctxt = 1000 ' Define topic context.
' Display message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt) If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action. Else ' User chose No.
MyString = "No" ' Perform some action. End If
Karena Msgbox merupakan fungsi maka dapat dipakai tanpa melalui variable lebih dulu
Sub GetAnswer2()
If MsgBox(“Continue?”, vbYesNo) = vbYes Then ‘ ...[code if Yes is clicked]...
Else
‘ ...[code if Yes is not clicked]...
End If
The InputBox Function
InputBox berguna jika kita ingin mendapatkan input dari
user berupa angka atau string
Syntax
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile,
context])
Default berisi angka yang sudah ditetapkan lebih dulu, jika
diabaikan maka InputBox akan kosong
Xpos & ypos jika diabaikan maka InputBox akan persis berada
ditengah
Jika user menekan cancel maka zero length string akan dihasilkan
(“”)
Untuk mengetahui apakah return valuenya angka maka digunakan
fungsi “IsNumeric”
Contoh InputBox
Program ini akan meminta user untuk memberikan info berapa sheet yang akan
ditambah, disini terlihat ada fungsi isnumeric yang berguna untuk menentukan apakah
user memasukkan angka, trus return value “” jika user meng-cancel inputbox
Sub GetName2AddSheet()
Dim Prompt As String Dim Caption As String Dim DefValue As Integer Dim NumSheets As String
Prompt = “How many sheets do you want to add?” Caption = “Tell me...”
DefValue = 1
NumSheets = InputBox(Prompt, Caption, DefValue)
If NumSheets = “” Then Exit Sub ‘Canceled
If IsNumeric(NumSheets) Then
If NumSheets > 0 Then Sheets.Add Count:=NumSheets Else
MsgBox “Invalid number”
End If
Contoh Code
Program ini akan menampilkan file open dialog dan akan muncul msgbox yang berisi nama file yang dipilih
Sub GetImportFileName() Dim Finfo As String
Dim FilterIndex As Integer Dim Title As String
Dim FileName As Variant ' Set up list of file filters
Finfo = "Text Files (*.txt),*.txt,Lotus Files (*.prn),*.prn,Comma Separated Files (*.csv),*.csv," & _ "ASCII Files (*.asc),*.asc,All Files (*.*),*.*"
' Display *.* by default FilterIndex = 5
' Set the dialog box caption Title = "Select a File to Import"""
' Get the filename
FileName = Application.GetOpenFilename(Finfo, _ FilterIndex, Title)
' Handle return info from dialog box If FileName = False Then
MsgBox "No file was selected.""" Else
MsgBox "You selected " & FileName End If
GetSaveAsFilename Method, sama seperti
GetOpenFilename hanya disini akan menampilkan dialog
save
Untuk menampilkan dialog pemilihan folder dipakai fungsi
Application.FileDialog(msoFileDialogFolderPicker).show
Contoh Code:
Sub GetAFolder()
With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & "\" .Title = "Please select a location for the backup" .Show If .SelectedItems.Count = 0 Then MsgBox “Canceled” Else MsgBox .SelectedItems(1) End If End With End Sub
Displaying Excel’s Built
-in Dialog Boxes
Misalnya Goto dialog box, codenya:
Result=Application.Dialogs(xlDialogFormulaGoto).Show
Untuk melihat Built-In dialog2 yang lain maka masuk ke VBE, vieObject Browsercari Classes=XlBuiltInDialog