Anda di halaman 1dari 51

Modul

Visual Basic for Application


Microsoft Excel
PENGENALAN MACRO DALAM PAKET APLIKASI SPREADSHEET

Tujuan Pembelajaran Umum


Membuat dan menggunakan macro sederhana dalam masalah akuntansi

Sub Pokok Bahasan


 Pengertian macro dalam program Spreadsheet
 Alasan-alasan menggunakan Macro
 Fasilitas Macro pada paket aplikasi Spreadsheet
 Merekam (recording) macro secara otomatis
 Menyimpan macro
 Menjalankan macro
 Membuat dan mengedit macro secara manual

Tujuan Pembelajaran Khusus


1. Membuat macro melalui perekaman.
2. Menjalankan macro yang direkam.
3. Menggunakan macro untuk masalah yang tepat

MATERI
PENDAHULUAN
Macro adalah kumpulan perintah-perintah dan fungsi spreadsheet MS-Excel
yang dibuat dengan menggunakan bahasa VBA (Visual Basic Application).
Mengapa perlu macro dengan VBA Excel?
 Pekerjaan yang sama dan berulang-ulang
 Data banyak
 Praktis & cepat

VBA Excel digunakan di banyak tempat kerja yang berhubungan dengan data,
dengan karekteristik pekerjaan antara lain:
 Data banyak: cross section atau data series
 Periodically updating
 Pembuatan system (entry sampai reporting)
Dari mana saya bisa belajar VBA Excel?
 Help?
 Buku
 Internet seperti dari Blog XQ (http://excelquotient.wordpress.com)
atau mailing list xl-mania@yahoogroups.com.
 Training/Workshop
 Persiapan apa untuk belajar VBA Excel?
 Programming Logic
 Mampu menggunakan Excel untuk entri data sederhana
 Mampu menggunakan formula di Excel
 Mengetahui shortcuts keyboard untuk perpindahan cell dalam
worksheets

TOOLBAR MACRO DAN VBA


Untuk membuat dan menjalankan macro, maka program MS-Excel perlu
diseting untuk menampilkan tab atau menu baru yang berhubungan dengan
operas-operasi macro, yaitu dengan prosedur sebagai berikut:
 Customize Quick Access Toolbar > More Commands … > Popular > Show
Developer tab in Ribbon
 Customize Quick Access Toolbar > More Commands … > Customize
Popular Command > View Macros
 Customize Quick Access Toolbar > More Commands … > Customize > All
Commands > View Macros > Toolbar Commands
 Customize Quick Access Toolbar > More Commands … > Customize > All
Commands > View Macros > Tools

Sehingga tampilan Command Tab Microsoft Excel seperti:

Gambar Menu dan Toolbar untuk Operasi Macro dan VBA

MEREKAM MACRO
Menu View > Macros > Record Macro > Isi : Macro name, Shortcut key, Store
macro in dan Description
Gambar 3 Tampilan Kotak Dialog Record Macro

Merekam macro dilakukan:


 Jika lupa
 Jika ingin tahu kode sumber dari apa yang dikerjakan dengan GUI
Excel

MEMBUKA VB EDITOR
Menu View > Macros > View Macros > Pilih nama Macro > Edit ( Atau Alt +
F11)
Gambar 2 Tampilan kotak dialog View Macro

CONTOH LATIHAN
 Buatlah New File Excel
 View > Macros > Record Macro
 Beri nama macro, Shortcut key, Store macro in dan
Description
 Klik OK
Gambar 5 Tampilan Kotak Dialog Record Macro Daftar_Gaji

 Buat lembar kerja berikut ini (dalam modus perekaman


macro)

Gambar 6 Worksheet Daftar Gaji

 Buka VB Editor di tengah-tengah perubahan langkah yang


dilakukan (View > Macros > View Macros > Pilih nama Macro > Edit Atau Alt
+ F11)
 Buka Modul berisi procedure macro tadi
 Perhatikan terjadi penambahan baris per baris macro pada
VB Editor ketika kita menjalankan perintah pada GUI Excel.

Contoh tampilan Visual Basic Application Editor


Gambar 7 Contoh Tampilan Kode Program pada VBA Editor

(Perhatikan setiap perubahan kalimat VBA, karena perubahan langkah yang


dilakukan)
Contoh tampilan lain VBA Editor

Gambar 8 Contoh Tampilan Kode Program lain pada VBA Editor

(Perhatikan kode program prosedur dimulai kalimat “Sub” dan diakhiri “End
Sub”)

MENGHENTIKAN PEREKAMAN MACRO


Menu View > Macros > Stop Recording

MENJALANKAN MACRO
 Hapuslah isi lembar kerja Daftar Gaji
 Jalankan macro Daftar_Gaji, dengan langkah:
Menu View > Macros > View Macros (Atau Alt + F8) > Pilih nama macro
Daftar_Gaji > Run (atau Ctrl + g)
Gambar 9 Tampilan View Macro untuk Run
Agar macro bisa dijalankan, maka file workbook harus disimpan dalam modus
Excel Macro – Enabled Workbook (yaitu menghasilkan file berekstensi .xlsm)

Gambar 10 Save As pada Excel Macro – Enabled Workbook


LATIHAN:
 Bukalah program MS-Excel
 Bukalah workbook yang baru

1. a) Lakukan perekaman macro (misalnya diberi nama “macro_sel”) untuk


langkah-langkah atau proses-proses yang berhubungan dengan sel, seperti:
 Pindah sel
 Isi sel dengan data label, angka, tanggal
 Isi sel dengan rumus
 Isi sel dengan fungsi
 Format sel, misalnya jenis font, ukuran font, warna font
 Copy isi sel
 Paste isi sel
 Delete isi sel
b) Periksa kalimat VBA melalui VBA Editor. Perhatikan setiap kalimat VBA,
untuk setiap langkah berhubungan dengan sel.
 Apa kalimat VBA untuk memindahkan sel?
 Apa kalimat VBA untuk mengetikkan di sel B5 dengan data teks
“No.”?
 Apa kalimat VBA untuk mengetikkan di sel F6 dengan rumus D6
dikali E6?
 Apa kalimat VBA untuk mengetikkan fungsi SUM (jumlah) dari F6
sampai dengan F13 di sel F14?
 Apa kalimat VBA untuk format sel dengan font “Arial 12”?
 Apa kalimat VBA untuk copy sel E6
 Apa kalimat VBA untuk untuk memilih (mem-blok) range E7 sampai
dengan E13
 Apa kalimat VBA untuk paste di sel E7 sampai dengan E13?
 Apa kalimat VBA untuk delete isi sel?
c) Hentikan perekaman

2. a) Lakukan perekaman macro (misalnya diberi nama “macro_sheet”) untuk


langkah-langkah atau proses-proses yang berhubungan dengan sheet,
seperti:
 Rename sheet
 Copy sheet
 Remove sheet
 Insert sheet
 Delete sheet
b) Periksa kalimat VBA melalui VBA Editor. Perhatikan setiap kalimat VBA,
untuk setiap langkah berhubungan dengan sheet
 Apa kalimat VBA untuk insert (menyisipkan) sheet baru?
 Apa kalimat VBA untuk rename sheet?
 Apa kalimat VBA untuk delete sheet?
 Apa kalimat VBA untuk copy sheet?
 Apa kalimat VBA untuk remove sheet?
c) Hentikan perekaman

3. a) Lakukan perekaman macro (misalnya diberi nama “macro_book”) untuk


langkah-langkah atau proses-proses yang berhubungan dengan workbook,
seperti:
 buka workbook baru
 save workbook
 open workbook
b) Periksa kalimat VBA melalui VBA Editor. Perhatikan setiap kalimat VBA,
untuk setiap langkah berhubungan dengan sheet.
 Apa kalimat VBA untuk buka file workbook baru
 Apa kalimat VBA untuk save workbook
 Apa kalimat VBA untuk open workbook
c) Hentikan perekaman
LATIHAN:
a) Buatlah lembar kerja seperti berikut ini, dan simpan dengan nama
(misal: Negara_Eropa).

Gambar 11 Lembar Kerja Jumlah Penduduk Negara Eropa

b) Buka VB Editor
c) Rekam macro, dengan input seperti berikut
Gambar 12

d) Periksa kalimat VBE melalui VB Editor, yaitu dobel klik Module (atau
menu View > Macros > View Macros > pilih nama macro (yaitu:
macro_Grafik) > Edit

Gambar 13

e) Kembali ke Microsoft Excel, blok kolom NEGARA dan JUMLAH


PENDUDUK Country beserta data nama-nama negara dan jumlah
penduduk, tetapi tanpa Jumlah.
f) Buat chart atau grafik dengan memilih menu Insert dan jenis (type)
grafik, Finish
g) Lihat ke VB Editor, sekarang kode program telah bertambah menjadi

Gambar 14

h) Lakukan langkah-langkah membuat grafik batang yang


menggambarkan perbandingan jumlah penduduk di negara-negara
Eropa. (sementara perekaman berlangsung)
i) Periksa kalimat VBE melalui VB Editor, yaitu dobel klik Module1
j) Atur grafik misalnya klik kanan pada area chart dan pilih “move chart”,
kemudian New Sheet. Dan OK
k) Hentikan perekaman macro
l) Lihat ke VB Editor, kode program bertambah sebagaimana perintah
yang dilakukan
Gambar 15
PENGENALAN VISUAL BASIC APLICATION (VBA) DALAM PAKET
APLIKASI SPREADSHEET (MS-EXCEL)

Tujuan Pembelajaran Umum


Menggunakan elemen-elemen (objek-objek) dalam penulisan program dengan
VBA MS-Excel untuk masalah akuntansi/keuangan

Sub Pokok Bahasan


 Mengenal Visual Basic Application (VBA)
 Perintah dan kalimat-kalimat (prosedur) VBA dalam program Macro
 Mengenal lembar kerja jendela (window) yang berhubungan dengan
pengeditan VBA.
 Mengenal struktur kalimat (syntax) Visual Basic: nama prosedur atau fungsi,
variabel, objek, operasi
 Event, Metoda dan Properti

Tujuan Pembelajaran Khusus


1. Menggunakan tombol toolbar fasilitas VBA.
2. Membedakan penggunaan jenis-jenis prosedur, variable, objek dan operasi
3. Menggunakan event, method dan property dalam VBA

MATERI

Kalimat VB Berkaitan dengan Range/Cell


Syntax Range/Cell:
 Range("<address cell>").<method>
 Range("<address cell>:<address cell>").<method>
 Range("<address cell>", "<address cell>").<method>
 ActiveCell.<method>
 Selection.<method>

<method>:

Address
Alamat range

Value
Isi/nilai range

Select
Memilih/mengaktifkan range

Copy Range("<address cell tujuan>")


Menyalin range ke range tujuan

PasteSpecial
Menempelkan isi/nilai range

ClearContents
Menghapus isi/nilai range

Cells(<index number>)
Memanggil range ke <index number>

Offset(<r>,<c>)
Memfokuskan range r baris ke bawah dan c kolom ke kiri

Formula
Formula dari range

FormulaR1C1=
Formula dengan input cell r baris ke bawah dan c kolom ke kiri

EntireRow
Memilih seluruh baris

Font
Memanipulasi tampilan font dengan menambahkan:
.Name
.Size
.ColorIndex=<0-56>
.Color=RGB(<0-255>, <0-255>,<0-255>)
.Bold=<True or False>
.Italic=<True or False>
.Underline=<True or False>

Contoh:
 Bukalah file workbook baru
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Procedure > Isi kolom “name”
(misal : contoh_Sel_Range) > Sub > OK, lalu ketik kalimat berikut
1 Range("A1").Select
2 Range("A1").Value = "Assalaamu'alaykum"
3 alamatcell = ActiveCell.Address
4 Range(alamatcell, "D7").Select
5 Selection.Cells(2).Value = "Wa'alaykumussalaam"
6 Selection.Cells(1).Copy Range("C1")
7 Selection.Copy
Range("F1").PasteSpecial
Paste:=xlValues,Operation:=xlNone, SkipBlanks:=False,
8 Transpose:=True
9 Range("A1:D1").ClearContents
10 Range("A2").EntireRow.Insert
11 Range("H1").Offset(1, -2).Value = "Silakan masuk"
12 Salam = Range("A1").Value
13 Range("F5").Value=salam
14 Range("A1").Formula = "=2+4*6"
15 Range("A2").Value = 4
16 Range("A3").FormulaR1C1 = "=R[-1]C+R[-2]C"
17 With Range("F1:F4").Font
18 .Name = "Verdana"
19 .Bold = True
20 .Size = 20
21 .ColorIndex = 23
22 End With

Keterangan program:
Baris17-22: Syntax WITH meringkaskan penulisan yang dapat ditulis dengan baris:
Range("F1:F4").Font.Name = "Verdana"
Range("F1:F4").Font.Bold = True
Range("F1:F4").Font.Size = 20
Range("F1:F4").Font.ColorIndex = 23

 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol

Kalimat VB Berkaitan dengan WorkSheet


Syntax WorkSheet:
 Sheets("<name>").<method>
 WorkSheets("<name>").<method>
 ActiveSheet.<method>
<method>

Add
Menambahkan sheet baru, bisa ditambah
After:= <sheet name>
Before:= <sheet name>
Name:= <new sheet name>

Name
Memberi nama atau mengambil nama sheet

Delete
Menghapus sheet

Activate
Memilih/mengaktifkan sheet

Move
Memindahkan sheet, ditambah
Before:= <sheet name>
Afer:= <sheet name>

Contoh:
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Procedure > Isi kolom “name”
(misal : contoh_Worksheet) > Sub > OK, lalu ketik kalimat berikut

1 namasheet = ActiveSheet
2 Worksheets.Add Before:=ActiveSheet
3 Worksheets("Sheet1").Name = "Grafik"
4 sheets(namasheet).Delete
5 Worksheets("Grafik").Activate
6 ActiveSheet.Move After:=Sheets("Sheet3")

 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol

Kalimat VB Berkaitan dengan Workbook


Syntax Workbook:
 Workbooks("<name>").<method>
 ActiveWorkbook.<method>
<method>

Add
Menambahkan workbook baru.

Name
Memberi nama atau mengambil nama sheet

Open "<file excel>"


Membuka file excel

Activate
Memilih/mengaktifkan workbook

Save
Menyimpan workbook

SaveCopyAs Filename:= "<namafile>"


Sama dengan perintah File > SaveAs atau F12 dalam GUI Excel

Close
Menutup workbook

Path
Mendapatkan lokasi penyimpan dalam storage device

Contoh:
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Procedure > Isi kolom “name”
(misal : contoh_Workbook) > Sub > OK, lalu ketik kalimat berikut

1 Dim filebaru as Workbook


2 Set filebaru = Workbooks.Add
3 filebaru.Name = "myData"
4 Workbooks.Open "C:\Data.xls"
5 Workbooks("Data").Activate
6 ActiveWorkbook.Save
7 ActiveWorkbook.SaveCopyAs Filename:="C:\Data2.xls"
8 ActiveWorkbook.Close
9 lokasi = ActiveWorkbook.Path
10 nilai = Workbooks("Data").Sheets("Grafik").Range("A1:D5").Value
 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol

Kalimat VB Berkaitan dengan Application


Syntax Application:
Application.<method>

<method>
ScreenUpdating = <False or True>
Jika True, layar monitor di Excel mengikuti alur program.

Wait(<ekspresi>)
Menghentikan alur program dalam waktu tertentu

StatusBar
Memberikan status/nilai pada status bar yang terletak di bagian bawah GUI
Microsoft Excel. Pastikan Status Bar pada menu View tercentang

DisplayAlerts = <Falsa or True>


Jika False, Alert atau message ketika macro sedang berjalan tidak
dimunculkan

Contoh:
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Procedure > Isi kolom “name”
(misal : contoh_Application) > Sub > OK, lalu ketik kalimat berikut

1 Range("A1").Select
2 activecell.offset(10, 100).Select
3 Range("A1").Select
4 Sheet("Sheet2").Delete
5 Application.ScreenUpdating = False
6 Application.DisplayAlert = False
7 Sheet("Sheet1").Delete
8 Application.Wait (Now + TimeValue("00:00:05"))
9 Application.StatusBar = "Running "
10 Application.ScreenUpdating = True
11 Application.DisplayAlert = True
 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol

Kalimat VB Berkaitan dengan String Manipulation


Syntax Manipulasi String:

Ltrim(<text>,<numchar>) / Rtrim(<text>,<numchar>)
Mengambil <numchar> karakter dari sebelah kiri/kanan

Mid(<text>,<startnum>,<numchar>)
Mengambil string dari posisi <startnum> sebanyak <numchar>

Upper (<text>) / Lower (<text>)


Membuat text manjadi huruf besar

Len(<text>)
Mengembalikan nilai panjang karakter string

Trim(<text>)
Menghapus semua spasi kecuali satu spasi di antara kata-kata.

Split(<text>,<delimiter>,<limit>)
Memisahkan text dengan pemisah delimiter. Function ini mengembalikan
array satu dimensi (vector). Ukuran vector bisa dibatasi sebanyak limit.

Contoh
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Procedure > Isi kolom “name”
(misal : contoh_Man_String) > Sub > OK, lalu ketik kalimat berikut

1 Range("A1").Value = "Brand : Sunsilk - Shampoo"


2 teks = Range("A1").Value
3 teks = Trim(teks)
4 pisahteks = Split(teks, ":")
5 merek = pisahteks(1)
6 teks = Upper(teks)
7 teks = RTrim(teks, 16)
8 teks = Mid(teks, 8, 4)
9 lenteks = Len(teks)
 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol
DASAR-DASAR PEMROGRAMAN MACRO DALAM VISUAL BASIC
APPLICATION (VBA) MS-EXCEL

Tujuan Pembelajaran Umum Pokok Bahasan


Menyusun algoritma dan memilih pernyataan kendali program dalam sub
prosedur.
Tujuan Pembelajaran Khusus Pokok Bahasan
Menyusun algoritma dan memilih pernyataan kendali program dalam sub
prosedur untuk pemrograman masalah akuntansi/keuangan
Sub Pokok Bahasan
 Jenis-Jenis Prosedur :
 Prosedur Sub
 Prosedur Fungsi
 Prosedur Properti
 Variabel dan jenis data
 Jenis-Jenis Operator (Aritmetika, Pembanding dan Penghubung)
 Kendali Program dan Algoritma
 Pernyataan Kondisi (Pemilihan):
 Pernyataan If …. Then …. Else ….
 Pernyataan Select …. Case ….

Tujuan Pembelajaran Khusus Sub Pokok Bahasan


1. Menggunakan variable sesuai dengan jenis datanya
2. Menggunakan operator-operator aritmatika, pembanding dan penghubung
dengan tepat.
3. Menggunakan pernyataan If …. Then …. Else …. untuk struktur pemilihan
secara tepat
4. Menggunakan pernyataan Select …. Case …. untuk struktur pemilihan secara
tepat

MATERI

Procedure & Variable

Prosedur adalah suatu unit (blok) kode program Visual Basic. Sebuah perosedur
berisi rangkaian pernyataan dan metode (atau instruksi-instruksi) untuk
melakukan suatu operasi atau kalkulasi data. Ada dua macam program prosedur
Visual Basic, yaitu prosedur sub dan prosedur fungsi.
Pengguna bisa membuat fungsi buatan sendiri (Users Defined Function) yang
belum disediakan MS-Excel melalui fungsi yang ‘built in’ melalui prosedur fungsi.

Persamaan dan perbedaan procedure sub dan procedure function


 Semua kode program ditulis dalam lingkup procedure
 Sub dan function dapat menerima masukkan nilai (input value)
 Sub tidak mengembalikan nilai (return value)
 Function dapat mengembalikan nilai (return value)
 Sub dimulai Sub dan diakhiri End Sub

(Private/Public) Sub nama_sub()


Pernyataan
Exit Sub
Pernyataan
End Sub

 Function dimulai Function dan diakhiri End Function

(Private/Public) Function nama_fungsi (arg1 As tipe, arg2 As tipe, arg )


Pernyataan
Nama = ekspresi
Exit Function
Pernyataan
Nama = ekspresi
End Function
 Function dalam macro dapat dipanggil dalam Sheet Excel.

Variable
 Variable atau constant yang dideklarasikan dalam procedure hanya berlaku
dalam lingkup procedure tersebut, disebut variable lokal.
 Variabel global berlaku secara global di seluruh procedure. Letak variable
global di baris paling atas di luar procedure.

Tipe Data
1) Tipe Data VBA Excel ada sebelas, yaitu Array, Boolean, Currency, Date, Double,
Integer, Long, Object, Single, String, dan Variant.
2) Contoh deklarasi variable local:
Dim nomor As Integer
Dim ttl As Date
Dim berhenti As Boolean
Dim matriks(3,5) As Array
Dim nama As String

3) Dan berikut contoh deklarasi variable global


Global nomor As Integer

Conditional & Looping Syntaxes (1)


Conditional dalam VBA Excel sebagaimana dalam bahasa pemrograman lain
menggunakan syntax IF dan SELECT CASE. Sedangkan looping menggunakan
syntax DO WHILE, DO UNTIL, dan FOR

Syntax IF
If <condition> then
<program>
Else If <condition> then
<program>
Else
<program>
End If

Contoh:
If ActiveCell.Value <= 5 Then
Status = "baby"
ElseIf ActiveCell.Value <= 10 Then
Status = "child"
ElseIf ActiveCell.Value <= 20 Then
Status = "teen"
Else
Status = "old"
End If

Syntax SELECT CASE


Select Case <variable>
Case <value>
<program>
Case <value>
<program>
Case Else
<program>
End Select

Contoh:
Select Case ActiveCell.Value
Case 1
letter = "satu"
Case 2
letter = "dua"
Case 3
letter = "tiga"
End Select
DASAR-DASAR PEMROGRAMAN MACRO DALAM VISUAL BASIC
APPLICATION (VBA) MS-EXCEL

Tujuan Pembelajaran Umum


Menyusun algoritma dan memilih pernyataan kendali program dalam sub
prosedur.
Sub Pokok Bahasan
 Pernyataan Kondisi (Pemilihan):
 Pernyataan If …. Then …. Else ….
 Pernyataan Select …. Case ….
 Pernyataan Pengulangan (Looping)
 Pernyataan Do …. Loop ….
 Pernyataan For …. Next ….
 Pernyataan For Each …. Next ….

Tujuan Pembelajaran Khusus


1. Menggunakan pernyataan pemilihan If …. Then …. Else ….; dan pernyataan
Select …. Case …. secara tepat
2. Menggunakan pernyataan pengulangan (Looping) Do …. Loop ….; pernyataan
For …. Next ….; pernyataan For Each …. Next …. secara tepat.

MATERI

Conditional & Looping Syntaxes (2)

Syntax DO WHILE dan Do UNTIL

Do while <condition>
<program>
Loop

Do Until <condition>
<program>
Loop
Contoh:
m = 0
Do Until ActiveCell.Value = ""
ActiveCell.Value = m
ActiveCell.Offset(1, 0).Select
m = m + 1
Loop

Syntax FOR
For <condition>
<program>
Next

Contoh:
For m = 1 To 10
ActiveCell.Value = m
ActiveCell.Offset(1, 0).Select
m = m + 1
Next m

LATIHAN CONTOH

Membuat function daypart

Masalah:
Dalam bidang media research atau advertising seringkali disuguhkan pekerjaan
untuk membuat coding daypart dari data hasil running Media Nielsen Suite. Data
waktu dapat dilihat pada file Contoh_Daypart.xls. Waktu dikelompokkan dengan
aturan seperti berikut.

Daypart Rule
05.30-11.59
12.00-15.59
16.00-18.59
19.00-20.59
21.00-22.29
22.30-23.59
Others

Solusi:
1. Buka file Contoh_Daypart.xls l ihat pada Sheet1

Gambar 16

2. Buka VB Editor (Alt + F11)


3. Pilih menu Insert > Module, lalu tuliskan kode program berikut:

Function DAYPART(waktu As Date) As String


DAYPART = "Others"
If waktu >= "05:30" And waktu <= "11:59" Then
DAYPART = "05:30-11:59"
If waktu >= "12:00" And waktu <= "15:59" Then
DAYPART = "12:00-15:59"
If waktu >= "16:00" And waktu <= "18:59" Then
DAYPART = "16:00-18:59"
If waktu >= "19:00" And waktu <= "20:59" Then
DAYPART = "19:00-20:59"
If waktu >= "21:00" And waktu <= "22:29" Then
DAYPART = "21:00-22:29"
If waktu >= "22:30" And waktu <= "23:59" Then
DAYPART = "22:30-23:59"
End Function

Keterangan program:
Baris 1: Function diberi nama DAYPART. Input value untuk function ini adalah
variable waktu dengan tipe data Date. Function DAYPART mengembalikan nilai
dengan tipe data String.
Baris 2-8: Kode program berdasarkan aturan daypart.

4. Kembali ke Sheet1, pada kolom daypart cell B2, ketik formula berikut:

=DAYPART(A2)

=DAYPART(A2)

Gambar 17

5. Begitu pula untuk baris-baris di bawahnya.


6. Kalau Anda melakukan dengan benar, maka hasilnya akan terlihat seperti ini:
Gambar 18
PENGENALAN VISUAL BASIC APPLICATION (VBA) DALAM PAKET
APLIKASI SPREADSHEET (MS-EXCEL)

Tujuan Pembelajaran Umum


Menggunakan elemen-elemen (objek-objek) dalam penulisan program dengan
VBA MS-Excel
Sub Pokok Bahasan
 Membuat Kotak Input
 Membuat Kotak Pesan
 Membuat sendiri Kotak Dialog (user’s form)
 Objek-objek user’s form
 Penggunaan Lembar Kerja Properties

Tujuan Pembelajaran Khusus


1. Membuat dan menggunakan kotak input, kotak pesan dan kotak dialog buatan
sendiri (user’r form)
2. Menggunakan objek-objek user’s form dalam pembuatan kotak input, kotak
pesan dan kotak dialog
3. Menggunakan lembar kerja properties dalam mengedit kotak input, kotak
pesan dan kotak dialog

MATERI
Message Box & Input Box

Syntax:
 Var = MsgBox("<prompt>" [, buttons] [, title] [, helpfile, context])
 MsgBox "<prompt>"
 Var = InputBox( “<prompt>” [, title] [, default] [ ,xpos] [, ypos] [, helpfile, context])

Keterangan:
<prompt>
Kalimat isi message
[,button]
Tombol yang ada ketika message box muncul (bisa dilihat di help VB Editor),
di antaranya
vbOKCancel : Tanpa icon, tombol: OK dan Cancel
vbYesNoCancel : Tanpa icon, tombol Yes, No, Cancel
vbQuestion : Icon tanda Tanya, tombol OK
vbCritical : Icon tanda silang disertai suara, tombol OK

[,default]
Nilai isian ketika input box dimunculkan

[,xpos]
Posisi horizontal input box

[,ypos]
Posisi vertical input box

Nilai kembalian (return value) tombol


vbOK : 1
vbCancel : 2
vbAbort : 3
vbRetry : 4
vbIgnore : 5
vbYes : 6
vbNo : 7

Contoh:
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Module, lalu ketik kalimat
berikut
1 Sub nama()
2 'deklarasi
3 Dim nama As String
4 Dim konfirmasi As Integer
5
6 'input masukkan nama
7 nama = InputBox("Masukkan nama Anda:", "Nama")
'jika nama tidak dimasukkan maka keluar dari procedure
8 sub
9 If nama = "" Then
10 MsgBox "Anda tidak mempunyai nama"
11 Exit Sub
12 End If
13
14 'konfirmasi nama
konfirmasi = MsgBox("Anda yakin bernama " & nama & "?",
15 vbYesNo, "Konfirmasi")
16 'jika menekan tombol Yes
17 If konfirmasi = 6 Then
18 MsgBox "Nama: " & nama
19 'jika menekan tombol No
20 ElseIf konfirmasi = 7 Then
21 MsgBox "Saya juga tidak yakin kalo " & nama &
" itu nama Anda"
22 End If
23 End Sub

 Jalankan program dengan memilih menu Run > Run Sub/UserForm (atau F5)
atau toolbar dengan symbol

Gambar 19 Tampilan Messages Box dan Input Box


DASAR-DASAR PEMROGRAMAN MACRO DALAM VISUAL BASIC
APPLICATION (VBA) MS-EXCEL

Tujuan Pembelajaran Umum


Membuat program sederhana (sub prosedur) dalam VBA MS-Excel dengan
menggunakan pernyataan-pernyataan kendali program yang tepat
prosedur.
Sub Pokok Bahasan
 Latihan pembuatan program sederhana dengan kendali program pemilihan
dan pengulangan untuk masalah akuntansi
Tujuan Pembelajaran Khusus
1. Memilih dan menerapkan pernyataan-pernyataan kendali program dalam
kasus pembuatan program sederhana.
PEMBUATAN PROSEDUR DAN FUNGSI BUATAN SENDIRI (USER’S
DEFINED FUNCTION)
Tujuan Pembelajaran Umum
Mengembangkan suatu prosedur dan fungsi buatan sendiri dengan
menggunakan VBA MS-Excel
Sub Pokok Bahasan
 Latihan Kasus Pembuatan Fungsi Buatan Sendiri dan Pembuatan Prosedur
Tujuan Pembelajaran Khusus
1. Membuat program prosedur fungsi buatan sendiri (user’s defined function)
dengan Visual Basic Application (VBA) MS-Excel.
2. Menjalankan / menggunakan prosedur fungsi buatan sendiri.

MATERI
(Private/Public) Function nama_fungsi (arg1 As tipe, arg2 As tipe, arg )
Pernyataan
Nama = ekspresi
Exit Function
Pernyataan
Nama = ekspresi
End Function

LATIHAN

Masalah:
 Buatlah suatu program fungsi buatan sendiri (User Dedined Function) yang
bernama Grs_Lurus untuk menghitung beban penyusutan dengan metode
garis lurus. Rumus Grs_Lurus adalah:
Grs_Lurus = (h_perolehan – nil_sisa)/um_ekonomis

Solusi:
 Bukalah VBA Editor (Alt + F11), lalu pilih Insert > Module > (klik Module dua
kali), lalu ketik kalimat berikut:
Public Function Grs_Lrs(kos As Double, nil_sisa As Double, umur
As Double) As Double

‘Grs_Lurus adalah metode garis lurus


‘kos adalah harga perolehan
‘nil_sisa adalah nilai sisa atau nilai residu
‘umur adalah umur ekonomis
Grs_Lurus = (kos – nil_sisa)/umur

End Function

 Gunakan fungsi Grs_Lrs untuk menyelesaikan lembar kerja berikut ini:

Gunakan fungsi Grs_Lrs

Gambar 20

SOAL
 Buatlah suatu program fungsi buatan sendiri (User Dedined Function) yang
bernama “ BEP” untuk menghitung “titik impas” (BEP = break event point)
dalam unit. Rumus BEP adalah:
BEP = Total_Fixed_Cost / (Unit_Sales – Variabel_Cost_Unit)
 Gunakan fungsi yang sudah dibuat untuk menyajikan lembar kerja berikut ini
Gunakan fungsi
BEP
=B5*E5  Harga jual * BEP Unit

Gambar 21
BEKERJA DENGAN OBJEK-OBJEK USER’S FORM

Tujuan Pembelajaran Umum


Menggunakan objek-objek User’s Form seperti Label, TextBox, CheckBox,
ComboBox, CommandButton, OptionButton, ToggleButton dalam pemrograman
VBA MS-Excel
Sub Pokok Bahasan
 Kegunaan kotak dialog (User’s Form) dibandingkan kotak input dan kotak pesan
 Jenis-Jenis Objek/Kontrol User’s Form:
 Label
 TextBox
 CheckBox
 ComboBox
 CommandButton
 OptionButton
 ToggleButton
 Properti-Properti Objek
 Membuat dan Memanipulasi Objek-Objek

Tujuan Pembelajaran Khusus


1. Memilih objek-objek yang digunakan secara tepat.
2. Memanipulasi (mengubah-ubah) objek sesuai kebutuhan
3. Menggunakan objek-objek dalam kotak dialog

MATERI

Visual Basic Controls


Memunculkan Controls Toolbox:
 Untuk memunculkan Controls toolbox pada tampilan lembar kerja : menu
Developer > Insert
 Untuk memunculkan Controls toolbox pada tampilan User Form : Alt + F11 >
Insert > UserForm
Controls
Toolbox

Controls
Toolbox
UserForm

Properti
es

Gambar 22 Visual Basic Toolbar: Properties, Visual Basic, dan Control Toolbox
Cara penggunaan:
 Untuk melakukan pengeditan, pastikan tombol (Design Mode) terpilih.
 Untuk membuat interactive user interface, klik objek pada Control Toolbox,
maka kursor mouse berubah menjadi tanda +. Lalu klik lagi pada worksheet.
 Untuk mengedit properties dari objek, klik kanan objek pada Sheet lalu pilih
Properties.
 Untuk menjalankan (running), pastikan tombol (Design Mode) tidak terpilih
CONTOH LATIHAN - 1
Membuat system entri data dalam worksheet

Masalah:
Telah dilakukan survey bohongan mengenai produk yang paling disukai dari
makanan khas Indonesia dengan tingkat kepuasannya. Buatlah system untuk
entry data dengan tiga variable yaitu:
1. ID Responden
2. Jenis kelamin
3. Produk paling disukai
4. Tingkat Kepuasan dengan rentang 1-10

Solusi:
1. Buka file excel dan ganti nama Sheet1 dengan Main, Sheet2 dengan Data, dan
Sheet3 dengan Support. Di mana sheet Main adalah front end untuk entri data,
sheet Data adalah daftar data yang telah dientri, dan sheet Support berisi data
konfigurasi system.
2. Buatlah tampilan sheet Main seperti Gambar 23, sheet Data seperti Gambar
24, dan sheet Support seperti Gambar 25.

VB CONTROL

Gambar 23. Tampilan sheet Main


Gambar 24 Tampilan sheet Data

Gambar 25 Tampilan sheet Support

3. Properties optionbutton Jenis Kelamin dalam sheet Main seperti Gambar 26.
Gambar 26. Properties optionbutton Jenis Kelamin

4. Aturan main optionbutton Jenis Kelamin seperti Gambar 27.

Support!B2

Gambar 27 Aturan main optionbutton Jenis Klamin


5. Properties combobox Produk Paling Disukai dan scrollbar Tingkat Kepuasan
dalam sheet Main seperti Gambar 28

Gambar 28. Properties combobox Produk Paling Disukai dan scrollbar Tingkat Kepuasan
6. Aturan main Produk Paling Disukai seperti Gambar 29.

Menu Formula > Define Name

Gambar 29. Aturan main Produk Paling Disukai


7. Properties tombol Record, tombol View Data, dan tombol Reset pada sheet
Main, serta tombol Back to Main pada Sheet Data

Gambar 30 Properties tombol Record, tombol View Data, tombol Reset dan
tombol Back to Main
8. Dobel klik masing-masing ke empat tombol, maka akan terbuka VB Editor. Lalu
masukkan kode program seperti berikut:

Pada Sheet Main:


1 Private Sub record_Click()
2 simpan
3 End Sub
4
5 Private Sub reset_Click()
6 resetmain
7 End Sub
8
9 Private Sub vData_Click()
10 Sheets("Data").Activate
11 End Sub

Pada Sheet Data:


1 Private Sub main_Click()
2 Sheets("Main").Activate
3 End Sub

9. Pada VB Editor klik menu Insert > Module, maka akan terbuka Module1. Lalu
ketik program berikut untuk me-record data dari sheet Main ke sheet Data.
Program ini aksi dari klik tombol Record.

1 Sub simpan()
2 Application.ScreenUpdating = False
3 Application.DisplayAlerts = False
4 On Error GoTo errorline
5
6 'DECLARATION
7 Dim cID As String
8 Dim cJK As String
9 Dim cPPD As String
10 Dim cTK As String
11 Dim m As Integer
12
13 'ASSIGN VALUE TO VARIABLE
14 cID = Range("D8").Value
15 cJK = Range("D10").Value
16 cPPD = Range("D12").Value
17 cTK = Range("D14").Value
18
19 'VALIDATION EMPTY CELL
20 If cID = "" Or cJK = "" Or cPPD = "" Or cTK = ""
Then
21 MsgBox "Fill the form correctly, please!"
22 GoTo lastline
23 End If
24
25 'PASTE VARIABLES
26 ''Activate Cell A1 at Sheet Data
27 Sheets("Data").Activate
28 Range("B3").Select
29 ''Search empty cell
30 Do Until ActiveCell.Value = ""
31 ''Assign record number
32 m = m + 1
33 ActiveCell.Offset(0, -1).Value = m
34 ''Validation duplicate redord
35 If ActiveCell.Value = cID Then
36 MsgBox "Can't perform duplicate ID Responden."
37 Sheets("Main").Activate
38 GoTo lastline
39 End If
40 ''Move to lower cell
41 ActiveCell.Offset(1, 0).Select
42 Loop
43 ''Fill the record
44 ActiveCell.Offset(0, -1).Value = m + 1
45 ActiveCell.Value = cID
46 ActiveCell.Offset(0, 1).Value = cJK
47 ActiveCell.Offset(0, 2).Value = cPPD
48 ActiveCell.Offset(0, 3).Value = cTK
49
50 'RESET THE CONDITION
51 Resetmain
52
53 'JUMP TO THE END OF PROGRAM
54 GoTo lastline
55
56 'GOTO LINE
57 errorline:
MsgBox "Sorry! Unpredicable error is occur. Call
58 program maker. please!"
59 lastline:
60 Application.ScreenUpdating = True
61 Application.DisplayAlerts = True
62 End Sub

10.Ketik pula program berikut pada module1 untuk me-reset system ke kondisi
semula. Program ini merupakan aksi dari tombol Reset, sambungan dari
program simpan dan dijalankan ketika file (workbook) ini dibuka.

1 Sub resetmain()
2 Application.ScreenUpdating = False
3 Application.DisplayAlerts = False
4
5 Sheets("Main").Activate
6 Range("D8").Value = ""
Range("D10").Formula = "=IF(Support!
B2=TRUE,""Laki-Laki"",IF(Support!
7 B2=FALSE,""Perempuan"",""""))"
8 Range("D12").Formula = ""
9 Range("D14").Formula = ""
10 Sheets("Support").Range("B2").Value = "N.A."
11
12 Application.ScreenUpdating = True
13 Application.DisplayAlerts = True
14 End Sub

11. Agar setiap kali file (workbook) ini dibuka selalu me-reset ke kondisi semula,
tuliskan program ini pada makro Workbook.

1 Private Sub Workbook_Open()


2 resetmain
3 End Sub

12. Coba masukkan data dan simpan dengan nama contoh_data_entry.xlsm


CONTOH LATIHAN - 2
Membuat system entri data dalam UserForm
1. Buatlah lembar kerja dengan nama sheet Barang seperti tampilan di bawah ini
untuk menampung data hasil entri yang diinputkan melalui form

2. Buatlah form melalui UserForm seperti tampilan berikut ini untuk


menginputkan data barang

Keterangan:
 Tombol “Tambah Data” memerintahkan komputer untuk menambahkan
data ke sheet Barang
 Tombol “Tampilkan” memerintahkan komputer untuk menampilkan data di
sheet Barang.
 Tombol “Keluar” memerintahkan komputer untuk keluar dari program

Anda mungkin juga menyukai