• Tidak ada hasil yang ditemukan

Modul VBA

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul VBA"

Copied!
100
0
0

Teks penuh

(1)

Microsoft Excel 2007

Microsoft Excel 2007

Programming

(2)

Bab I

Bab I

Pengenalan VBA

Pengenalan VBA

Apa

Apa itu

itu

VBA

VBA

(3)

Bab I

Bab I

Pengenalan VBA

Pengenalan VBA

Apa

Apa itu

itu

VBA

VBA

(4)

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

(5)

Apa yang bisa dilakukan dengan VBA

 Melakukan suatu pekerjaan yang berulang-ulang, contoh membikin konfirmasi, jika

tanpa 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

(6)

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

(7)

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.

(8)

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 worksheet

6. Untuk menangani file xlm, import & export, dll

(9)

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”

(10)

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

(11)

Menjalankan Macro

Pilih cell yang akan diterapkan macro

bersangkutan

Klik Developer Tab

Klik macros, maka akan muncul Macro dialog

box

(12)

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

(13)

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.

(14)

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

(15)

Macro Security

Macro Security

Untuk bisa Untuk bisa menjalankan menjalankan macro maka macro maka setting yang setting yang pertama jangan di pertama jangan di

tick 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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Visual Basic Editor

1. Project Explorer 2. Properties 3. Code Window 4. Userform window 5. Object Browser 6. Immediate 7. Locals 8. Watcher

(25)

VB Editor

 1. Project Explorer window

Project 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

(26)

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

(27)

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

(28)

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

(29)

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.

(30)

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

(31)

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

(32)

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

(33)

Change VBA Project

Pilih Project di Project

Explorer Window

Klik kanan untuk

memunculkan menu

Pilih dan klik

(34)

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

(35)

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

(36)

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

(37)

Membuat prosedure baru

Pilih module

yang akan

ditambahkan

prosedure

Klik menu

Insert->Procedure

(38)

Add new procedure

Isi name dangan nama

procedure yang

diinginkan

Pilih sub di Type

(default)

Pilih public di Scope

(Default)

(39)

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

(40)

Bab III

Excel Obyek dan VBA Sub & Procedure

Intoducing Excel Object Model

Merujuk ke Obyek

VBA Sub dan Fuction Procedure

How to naming

Syntax

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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.

(46)

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

(47)

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

(48)

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

(49)

Bab IV. Essential VBA

Language Elements

Comments

Variable

Constant

Data Type

Array

(50)

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

(51)

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

(52)

Declaring Variable

 Kita mendeklarasikan variabel agar program berjalan lebih efisien dan lebih cepat, juga agar kita tidak salah dalam mengetik nama

variabelmenggunakan 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

(53)
(54)

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’

(55)

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

(56)

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

(57)

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”

(58)

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)

(59)

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”

(60)

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

(61)

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

(62)

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”

(63)

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”

(64)

Some Useful Range Object

Properties

Value property

Text Property

Count Property

Address Property

HasFormula

Font

Interior

Formula

NumberFormat

(65)

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

(66)

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

(67)

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)

(68)

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

(69)

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

(70)

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

(71)

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

(72)
(73)
(74)
(75)
(76)

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

(77)

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

(78)

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

(79)

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

(80)

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

(81)

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

(82)

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

(83)

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

(84)

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 sjamak), 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

(85)

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.

(86)

Membuat prosedur yang dijalankan setiap kali

workbook dibuka

Buka VBE

Pilih Workbook yang

diinginkan di project explorer

Pilih folder “ThisWorkbook”

dan klik2x / klik kananView

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

(87)

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

(88)

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 

(89)

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

(90)

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!”

(91)

Bab IX.

Simple Dialog Boxes

Kita Akan membahas :

MsgBox

InputBox

GetOpenFile

GetSaveFile

(92)

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

(93)

Msgbox Function

Nilai Konstant pada button di

(94)

 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 

(95)

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”

(96)

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 

(97)
(98)

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 

(99)

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

(100)

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, vieObject Browsercari Classes=XlBuiltInDialog

Referensi

Dokumen terkait

 The EVOLUTIONARY PERSPECTIVE of social psychology would maintain that sharing is a behavioral phenotype selected for by nature that benefits the individual, group, and species

Lukisan berjudul Women III adalah merupakan hasil karya yang dibuat oleh seniman yang menganut aliran lukisan abstrak ekspresionis willem de Kooning dan merupakan salah satu

Setelah mengetahui kelebihan yang dimiliki legum dan ketersediaan pakan hijauan yang tidak tercukupi pada musim kemarau, maka penulis tertarik untuk melakukan penelitian

Hal inilah yang menyebabkan peningkatan penerimaan pendapatan daerah dari 10 komponen pajak daerah tercapai dan realisasi penerimaan pajak daerah selalu melampaui

Skripsi yang berjudul “Pendapat Mempelai Di Kota Banjarmasin Tentang Batas Minimal Mahar” ditulis oleh Khairunnisa, telah diujikan dalam Sidang Tim Penguji

Master Control dapat digunakan untuk mengatur jarum jam dalam rangka adjustment, berperan dalam fungsi illumination pada malam hari, dan auto correction time jika listrik PLN mati dan

1) Kangkung sutera dapat ditanam bersamaan dengan waktu tanam jagung manis, sampai dengan tiga minggu setelah tanam jagung manis. 2) Hasil jagung manis tidak

Menentukan kondisi operasi yang optimal (daya microwave , lama waktu ekstraksi, dan rasio antara bahan baku yang akan diekstrak dengan pelarut yang digunakan) dari