You are on page 1of 36

Visual Basic for Application Microsoft Excel Quick Training

Module

Oleh: F-Xtudent http://excelquotient.wordpress.com

Keluarga Mahasiswa Muslim Statistika


Institut Pertanian Bogor
Syaban 1426/Oktober 2005

Prakata

Bismillaahirrahmaanirrahiim. Segala puja dan puji serta ungkapan syukur penulis panjatkan kehadirat Allah swt. Atas segala nimat, rahmat, dan rahimNya, penulis dapat menyelesaikan penyusunan dokumentasi dalam bentuk module ini. Shalawat dan salam atas Rasulullah saw, juga mudah-mudahan terlimpah kepada para keluarganya, sahabat, tabiin, tabittabiin dan umatnya sampai hari akhir. Dokumentasi berjudul Visual Basic for Application Microsoft Excel Quick Training Module menggunakan lisensi GNU Free Documentation License, Version 1.2 dengan harapan module ini dapat dipergunakan lebih bebas dan dapat dikembangkan. Ucapan terima kasih disampaikan kepada Keluarga Mahasiswa Muslim Statistika, juga pada penulis-penulis VBA Excel yang dengan rela mempublikasikan tulisannya di dunia internet. Sudah dipastikan dalam module ini banyak sekali kekurangan dikarenakan keterbatasan kemampuan dan waktu yang dimiliki. Kontribusi dari pembaca/pengguna dokumentasi ini akan sangat membantu berkembangnya ilmu teknologi informasi terutama yang berhubungan dengan statistka. Penulis dapat dihubungi melalui blog XQ, http://excelquotient.wordpress.com.

Syaban 1426 F-Xtudent

VBA Excel Quick Training

http://excelquotient.wordpress.com

Hak Cipta dan Informasi Merek Dagang

Visual Basic for Application Microsoft Excel Quick Training Module Hak Cipta 2005 F-Xtudent Dipersilakan untuk memperbanyak, mendistribusikan dan atau memodifikasi dokumentasi ini di bawah ketentuan GNU Free Documentation License, Version 1.2 atau versi sebelumnya yang dipublikasikan oleh Free Software Foundation. Salinan lisensi tersedia di http://www.gnu.org/licenses/fdl.html Keluarga Mahasiswa Muslim Statistika Institut Pertanian Bogor adalah sponsor dokumentasi ini. Microsoft

Excel adalah merek dagang dari Microsoft Corporation.

VBA Excel Quick Training

http://excelquotient.wordpress.com

Daftar Isi

VBA Excel Overview Integrated Development Environment Uswah 1 Procedure & Variable Conditional & Looping Syntax Uswah 2 Range/Cells WorkSheet Workbook Application Message Box & Input Box String Manipulation Visual Basic Controls Uswah 3 Add-Ins Protection & Validation

VBA Excel Quick Training

http://excelquotient.wordpress.com

VBA Excel Overview


Sekilas Microsoft Excel Microsoft Excel merupakan trademark dari perusahan pimpinan Bill Gates yang memberikan solusi penyimpanan dan pengolahan data secara mudah dalam bentuk spreadsheet yang user friendly. Dengan pemasaran yang gencar - walaupun ada (baca: banyak) pembajakan - membuat Microsoft Excel sebagai software spreadsheet yang paling banyak digunakan di seluruh dunia. Microsoft Excel berhasil mengalahkan saingan-saingannya. Semenjak kelahiran Microsoft Excel 1.0 (1985) yang dijalankan di atas platform Apple Macintosh, Microsoft Excel adalah Spreadsheet pertama dengan user interface mempergunakan menu pull-down dengan pemanfaatan mouse. Spreadsheet sebelumnya yaitu VisiCalc (1979) dan Lotus 123 berhasil ditumbangkan. Sekarang, saingan terberat Microsoft Excel adalah OpenOffice.org Calc, yang open source dan gratis namun dengan fasilitas yang tidak jauh berbeda dengan Microsoft Excel. Visual Basic for Application Excel mulai diterapkan pada Microsoft Excel 5.0 (1993) sebagai bahasa Macro Excel. Dan pada tahun yang sama, Microsoft membuat suite untuk aplikasi perkantoran, yaitu Microsoft Office. Mengapa VBA Excel 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 belajar VBA Excel Training/Workshop Help Microsoft Excel dan MSDN Buku-buku VBA Excel Internet, seperti blog XQ (http://excelquotient.wordpress.com) dan mailing list xl-mania@yahoogroups.com.

VBA Excel Quick Training

http://excelquotient.wordpress.com

Integrated Development Environment


Menjalankan Macro Menu Tools > Macro > Macros Atau Alt F8 Merubah Tingkat Keamanan Macro Menu Tools > Macro > Security Agar macro berjalan, pilih security level Medium atau Low. Membuka VB Editor Menu Tools > Macro > Visual Basic Editor Atau Alt F11 Merekam Macro Menu Tools > Macro > Record New Macro Menghentikan Perekaman Macro Menu Tools > Macro > Stop Recording

Figure 1. Tampilan IDE VBA Excel Quick Training http://excelquotient.wordpress.com

Uswah 1:
Merekam pembuatan chart Masalah: Buatlah chart yang mendeskripsikan mengenai data populasi muslim di Eropa tahun 2002. Country Austria Belgium Bulgaria Denmark Finland France Germany Greece Hungary Italy Luxemburg The Netherlands Poland Portugal Romania Spain Sweden Switzerland United Kingdom Total Total Population 8,102,600 10,192,240 8,487,317 5,330,020 5,171,302 56,000,000 82,000,000 10,000,000 10,043,000 56,778,031 435,000 15,760,225 38,667,000 9,853,000 22,500,000 40,202,160 8,876,611 7,304,109 55,000,000 Muslims Number 300,000 370,000 1,110,295 150,000 20,000 5,000,000 3,040,000 370,000 30,000 700,000 3,800 695,600 15,000 38,000 60,000 400,000 300,000 310,000 1,406,000 Percentage of Muslim Number

Solusi: 1. Masukkan data di atas ke Sheet1 mulai dari cell A1. Isi cell yang masih kosong! 2. Buka VB Editor 3. Rekam macro, dengan input seperti berikut (Figure 2):

VBA Excel Quick Training

http://excelquotient.wordpress.com

Figure 2. Tampilan record macro

4. Di VB Editor, dobel klik Module1.


1 2 3 4 5 6 7 8 Sub MyChart() ' ' MyChart Macro ' Macro recorded 9/21/2005 by F-Xtudent ' ' Keyboard Shortcut: Ctrl+r ' End Sub

5. Kembali ke Microsoft Excel, blok kolom Country, Muslim Number, dan Percentage of Muslim Number beserta judul tabel tapi tanpa baris Total. 6. Buat chart, dengan tipe Line-Column on 2 Axes pada tab Custom Types. Finish 7. Lihat ke VB Editor, sekarang kode program telah bertambah menjadi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sub MyChart() ' ' MyChart Macro ' Macro recorded 9/21/2005 by F-Xtudent ' ' Keyboard Shortcut: Ctrl+r ' Range("A1:A20,C1:D20").Select Range("C1").Activate Charts.Add ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= "Line - Column on 2 Axes" ActiveChart.SetSourceData Source:=Sheets("Sheet1"). Range("A1:A20,C1:D20"), PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" End Sub http://excelquotient.wordpress.com

VBA Excel Quick Training

Keterangan program: Pada kode program di atas, baris 10-13 merupakan baris inti pembuatan chart sebagaimana dilakukan dalam GUI. Baris 10: Membuat chart baru Baris 11: Menentukan tipe chart Baris 12: Menentukan sumber data Baris 13: Menentukan lokasi Chart

8. Atur chart seindah mungkin.

Figure 3. Tampilan chart

9. Hentikan perekaman. 10. Lihat ke VB Editor, kode program bertambah sebagaimana perintah yang dilakukan dalam GUI. 11. Sekarang, ubahlah baris 12 dengan baris berikut
12 ActiveChart.SetSourceData Source:=Sheets("Sheet1"). Range("A1:A20,B1:C22"), PlotBy:=xlColumns

12. Simpan kursor pada procedure sub MyChart, lalu tekan F8, berkalikali. 13. Lihat di Sheet1. Apa yang terjadi? 14. Simpan file Excel dengan nama uswah1.xls

VBA Excel Quick Training

http://excelquotient.wordpress.com

10

Procedure & Variable


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 Function dimulai Function dan diakhiri End Function Function dalam maco 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 Tipe Data VBA Excel ada sebelas, yaitu Array, Boolean, Currency, Date, Double, Integer, Long, Object, Single, String, dan Variant. Contoh deklarasi variable local:
Dim Dim Dim Dim Dim nomor As Integer ttl As Date berhenti As Boolean matriks(3,5) As Array nama As String

Dan berikut contoh deklarasi variable global


Global nomor As Integer

VBA Excel Quick Training

http://excelquotient.wordpress.com

11

Conditional & Looping Syntaxes


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:
1 2 3 4 5 6 7 8 9 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

VBA Excel Quick Training

http://excelquotient.wordpress.com

12

Contoh:
1 2 3 4 5 6 7 8 Select Case ActiveCell.Value Case 1 letter = "satu" Case 2 letter = "dua" Case 3 letter = "tiga" End Select

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

VBA Excel Quick Training

http://excelquotient.wordpress.com

13

Uswah 2:
Membuat function daypart Masalah: Dalam bidang media research atau advertising seringkali disuguhkan pekerjaan untuk membuat koding daypart dari data hasil running Media Nielsen Suite. Data waktu dapat dilihat pada file uswah2.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 uswah2.xls lihat pada Sheet1 2. Buka VB Editor 3. Pilih menu Insert > Module, lalu tuliskan kode program berikut:
1 2 3 4 5 6 7 8 9 Function DAYPART(waktu As Date) As String DAYPART = "Others" If waktu >= "05:30" And waktu DAYPART = "05:30-11:59" If waktu >= "12:00" And waktu DAYPART = "12:00-15:59" If waktu >= "16:00" And waktu DAYPART = "16:00-18:59" If waktu >= "19:00" And waktu DAYPART = "19:00-20:59" If waktu >= "21:00" And waktu DAYPART = "21:00-22:29" If waktu >= "22:30" And waktu DAYPART = "22:30-23:59" End Function <= "11:59" Then <= "15:59" Then <= "18:59" Then <= "20:59" Then <= "22:29" Then <= "23:59" Then

VBA Excel Quick Training

http://excelquotient.wordpress.com

14

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) 5. Begitu pula untuk baris-baris di bawahnya. 6. Kalau Anda melakukan dengan benar, maka hasilnya akan terlihat seperti ini: Time 17:52 9:32 12:05 12:31 5:22 10:29 11:57 13:47 21:39 22:56 1:41 3:56 5:50 19:04 9:33 5:48 23:51 0:20 Daypart 16:00-18:59 05:30-11:59 12:00-15:59 12:00-15:59 Others 05:30-11:59 05:30-11:59 12:00-15:59 21:00-22:29 22:30-23:59 Others Others 05:30-11:59 19:00-20:59 05:30-11:59 05:30-11:59 22:30-23:59 Others

VBA Excel Quick Training

http://excelquotient.wordpress.com

15

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 Value Select

Alamat range Isi/nilai range Memilih/mengaktifkan range


Copy Range("<address cell tujuan>") PasteSpecial

Menyalin range ke range tujuan Menempelkan isi/nilai range

ClearContents Cells(<index number>) Offset(<r>,<c>) Formula

Menghapus isi/nilai range Memanggil range ke <index number> Memfokuskan range r baris ke bawah dan c kolom ke kiri Formula dari range

FormulaR1C1= EntireRow Font

Formula dengan input cell r baris ke bawah dan c kolom ke kiri Memilih seluruh baris 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>

VBA Excel Quick Training

http://excelquotient.wordpress.com

16

Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Range("A1").Select Range("A1").Value = "Assalaamu'alaykum" alamatcell = ActiveCell.Address Range(alamatcell, "D7").Select Selection.Cells(2).Value = "Wa'alaykumussalaam" Selection.Cells(1).Copy Range("C1") Selection.Copy Range("F1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Range("A1:D1").ClearContents Range("A2").EntireRow.Insert Range("H1").Offset(1, -2).Value = "Silakan masuk" Salam = Range("A1").Value Range("F5").Value=salam Range("A1").Formula = "=2+4*6" Range("A2").Value = 4 Range("A3").FormulaR1C1 = "=R[-1]C+R[-2]C" With Range("F1:F4").Font .Name = "Verdana" .Bold = True .Size = 20 .ColorIndex = 23 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

VBA Excel Quick Training

http://excelquotient.wordpress.com

17

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 Delete

Memberi nama atau mengambil nama sheet


Activate Move

Menghapus sheet Memilih/mengaktifkan sheet Memindahkan sheet, ditambah


Before:= <sheet name> Afer:= <sheet name>

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

VBA Excel Quick Training

http://excelquotient.wordpress.com

18

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

<method>
Add Name

Menambahkan workbook baru. Memberi nama atau mengambil nama sheet

Open "<file excel>" Activate Save SaveCopyAs Filename:= "<namafile>"

Membuka file excel Memilih/mengaktifkan workbook Menyimpan workbook

Sama dengan perintah File > SaveAs atau F12 dalam GUI Excel
Close Path

Menutup workbook Mendapatkan lokasi penyimpan dalam storage device

Contoh:
1 2 3 4 5 6 7 8 9 10 Dim filebaru as Workbook Set filebaru = Workbooks.Add filebaru.Name = "myData" Workbooks.Open "C:\Data.xls" Workbooks("Data").Activate ActiveWorkbook.Save ActiveWorkbook.SaveCopyAs Filename:="C:\Data2.xls" ActiveWorkbook.Close lokasi = ActiveWorkbook.Path nilai = Workbooks("Data").Sheets("Grafik").Range("A1:D5").Value

VBA Excel Quick Training

http://excelquotient.wordpress.com

19

Application
Syntax Application:
Application.<method>

<method>

ScreenUpdating = <False or True>

Jika True, layar monitor di Excel mengikuti alur program.


Wait(<ekspresi>) StatusBar

Menghentikan alur program dalam waktu tertentu 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:
1 2 3 4 5 6 7 8 9 10 11 Range("A1").Select activecell.offset(10, 100).Select Range("A1").Select Sheet("Sheet2").Delete Application.ScreenUpdating = False Application.DisplayAlert = False Sheet("Sheet1").Delete Application.Wait (Now + TimeValue("00:00:05")) Application.StatusBar = "Running " Application.ScreenUpdating = True Application.DisplayAlert = True

VBA Excel Quick Training

http://excelquotient.wordpress.com

20

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] [,ypos]

Posisi horizontal input box Posisi vertical input box

Nilai kembalian (return value) tombol vbOK :1 vbCancel : 2 vbAbort : 3 vbRetry :4 vbIgnore : 5 vbYes :6 vbNo :7

VBA Excel Quick Training

http://excelquotient.wordpress.com

21

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

Figure 4. Tampilan Messages Box dan Input Box

VBA Excel Quick Training

http://excelquotient.wordpress.com

22

String Manipulation
Syntax Manipulasi String:
Ltrim(<text>,<numchar>) / Rtrim(<text>,<numchar>) Mid(<text>,<startnum>,<numchar>) Upper (<text>) / Lower (<text>) Len(<text>)

Mengambil <numchar> karakter dari sebelah kiri/kanan Mengambil string dari posisi <startnum> sebanyak <numchar> Membuat text manjadi huruf besar Mengembalikan nilai panjang karakter string

Trim(<text>) Split(<text>,<delimiter>,<limit>)

Menghapus semua spasi kecuali satu spasi di antara kata-kata.

Memisahkan text dengan pemisah delimiter. Function ini mengembalikan array satu dimensi (vector). Ukuran vector bisa dibatasi sebanyak limit. Contoh
1 2 3 4 5 6 7 8 9 Range("A1").Value = "Brand teks = Range("A1").Value teks = Trim(teks) pisahteks = Split(teks, ":") merek = pisahteks(1) teks = Upper(teks) teks = RTrim(teks, 16) teks = Mid(teks, 8, 4) lenteks = Len(teks) : Sunsilk - Shampoo"

VBA Excel Quick Training

http://excelquotient.wordpress.com

23

Visual Basic Controls


Memunculkan toolbar Visual Basic: Klik kanan pada menu apa saja lalu pilih Visual Basic atau Klik menu Tools > Costumize Pada tab Toolbar, centang Visual Basic lalu Close

Figure 5. Visual Basic Toolbar: Properties, Visual Basic, dan Control Toolbox

VBA Excel Quick Training

http://excelquotient.wordpress.com

24

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

VBA Excel Quick Training

http://excelquotient.wordpress.com

25

Uswah 3:
Membuat system entri data 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 selang 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 Figure 6, sheet Data seperti Figure 7, dan sheet Support seperti Figure 8.

VB Controls
Figure 6. Tampilan sheet Main

VBA Excel Quick Training

http://excelquotient.wordpress.com

26

VB Controls

Figure 7 Tampilan sheet Data

Figure 8. Tampilan sheet Support

VBA Excel Quick Training

http://excelquotient.wordpress.com

27

3. Properties optionbutton Jenis Kelamin dalam sheet Main seperti Figure 9.

Figure 9. Properties optionbutton Jenis Kelamin

4. Aturan main optionbutton Jenis Kelamin seperti Figure 10.

Figure 9. Aturan main Janis Kelamin

Figure 10. Aturan main optionbutton Jenis Klamin VBA Excel Quick Training http://excelquotient.wordpress.com

28

5. Properties combobox Produk Paling Disukai dan scrollbar Tingkat Kepuasan dalam sheet Main seperti Figure 11

Figure 11. Properties combobox Produk Paling Disukai dan scrollbar Tingkat Kepuasan

6. Aturan main Produk Paling Disukai seperti Figure 12.

Figure 12. Aturan main Produk Paling Disukai

VBA Excel Quick Training

http://excelquotient.wordpress.com

29

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

Figure 13. Properties tombol Record, tombol View Data, tombol Reset dan tombol Back to Main VBA Excel Quick Training http://excelquotient.wordpress.com

30

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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Sub simpan() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error GoTo errorline 'DECLARATION Dim cID As String Dim cJK As String Dim cPPD As String Dim cTK As String Dim m As Integer 'ASSIGN VALUE TO VARIABLE cID = Range("D8").Value cJK = Range("D10").Value cPPD = Range("D12").Value cTK = Range("D14").Value 'VALIDATION EMPTY CELL If cID = "" Or cJK = "" Or cPPD = "" Or cTK = "" Then MsgBox "Fill the form correctly, please!" GoTo lastline http://excelquotient.wordpress.com

VBA Excel Quick Training

31 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 End If 'PASTE VARIABLES ''Activate Cell A1 at Sheet Data Sheets("Data").Activate Range("B3").Select ''Search empty cell Do Until ActiveCell.Value = "" ''Assign record number m = m + 1 ActiveCell.Offset(0, -1).Value = m ''Validation duplicate redord If ActiveCell.Value = cID Then MsgBox "Can't perform duplicate ID Responden." Sheets("Main").Activate GoTo lastline End If ''Move to lower cell ActiveCell.Offset(1, 0).Select Loop ''Fill the record ActiveCell.Offset(0, -1).Value = m + 1 ActiveCell.Value = cID ActiveCell.Offset(0, 1).Value = cJK ActiveCell.Offset(0, 2).Value = cPPD ActiveCell.Offset(0, 3).Value = cTK 'RESET THE CONDITION Resetmain 'JUMP TO THE END OF PROGRAM GoTo lastline 'GOTO LINE errorline: MsgBox "Sorry! Unpredicable error is occur. Call program maker. please!" lastline: Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub

10. Ketik pula program berikut pada module1 untuk me-reset system ke kondisi semula. Program ini merupakan aksi dari tombol Reset,

VBA Excel Quick Training

http://excelquotient.wordpress.com

32

sambungan dari program simpan dan dijalankan ketika file (workbook) ini dibuka.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sub resetmain() Application.ScreenUpdating = False Application.DisplayAlerts = False Sheets("Main").Activate Range("D8").Value = "" Range("D10").Formula = "=IF(Support!B2=TRUE,""LakiLaki"",IF(Support!B2=FALSE,""Perempuan"",""""))" Range("D12").Formula = "" Range("D14").Formula = "" Sheets("Support").Range("B2").Value = "N.A." Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub

11. Agar setiap kali file (workbook) ini dibuka selalu me-reset ke kondisi semula, tuliskan program ini pada makro Workbook.
1 2 3 Private Sub Workbook_Open() resetmain End Sub

12. Coba masukkan data dan simpan dengan nama uswah3.xls

VBA Excel Quick Training

http://excelquotient.wordpress.com

33

Add-Ins
Add-Ins merupakan program tambahan untuk Microsoft Excel. Melalui menu Tools > Add-Ins Anda bisa menambahkan atau mengurangi AddIns yang disediakan oleh Microsoft Excel sendiri atau buatan sendiri. Langkah Membuat Add-Ins Membuat program VBA Excel seperti contoh-contoh di bahasan sebelumnya Buka VB Editor Pilih ThisWorkbook dalam jendela Project. Pada jendela Properties set IsAddin menjadi True Menyimpannya dalam tipe file Microsoft Office Excel Add-In (.xla) Contoh: 1. Buatlah file uswah2.xla dari file uswah2.xls 2. Simpan file uswah2.xla di path Add-In, pada computer penulis, terletak di C:\Documents and Settings\F-Xtudent\Application Data\Microsoft\AddIns\ 3. Buka Microsodt Excel 4. Klik menu Tools > Add-Ins, maka akan mucul jendela Add-Ins 5. Klik tombol Browse.. lalu pilih file uswah2.xla 6. Pada Add-Ins available, centang uswah2, lalu klik OK 7. Coba panggil function DAYPART pada worksheet.

VBA Excel Quick Training

http://excelquotient.wordpress.com

34

Protection & Validation


Setelah program kita beres, sangat dianjurkan untuk menambahkan proteksi serta validasi terhadap program yang dibuat Range(s) Protection 1. Pilih range yang akan diproteksi 2. Pilih menu Format > Cells 3. Pilih tab Protection. Centang Locked untuk menproteksi range dari perubahan, dan atau centang Hidden untuk menyembunyikan formula pada range.

Figure 14. Tampilan Format Cells untuk proteksi

4. Proteksi di atas akan berfungsi ketika Worksheet diproteksi. Caranya pilih menu Tools > Protection > Protect Sheet Range Input Validation 1. Pilih range(s) yang dikehendaki 2. Pilih menu Data > Validation (Figure 15) 3. Pada tab Settings, tentukan tipe data pada Allow lalu tentukan aturannya.
VBA Excel Quick Training http://excelquotient.wordpress.com

35

4.

5. 6.

Input Message berguna untuk memberi petunjuk pengisian data. Input message akan muncul pop-up ketika range tersebut aktif. Jika berkehendak, isikan judul message dan isi message pada tab Input Message. Pada tab Error Alert , jika Anda ingin memberikan alert ketika ada data yang tidak valid, centanglah Show error alert after Ada tiga style alert yang berbeda fungsinya. Gunakan stop style untuk input data yang benar-benar harus memenuhi validasi. Gunakan warning style untuk validasi yang tidak terlalu ketat. Dan gunakan information style untuk validasi yang sangat longgar.

Figure 15. Tampilan jendela validation

7.

Silakan terapkan pada validasi dan proteksi pada file uswah3.xls!

VBA Excel Quick Training

http://excelquotient.wordpress.com

36

Pustaka

Kusrianto Adi. 2004. Cara Mudah Menggunakan VBA Excel. PT. Elexmedia Komputindo. Jakarta. [Madcoms]. 2005. Panduan Belajar Macro Excel 2003. Penerbit ANDI. Yogyakarta. Thompson James M. 2004. Porting Excel/VBA to Calc/StarBasic. http://documentation.openoffice.org/HOW_TO/various_topics/V baStarBasicXref.pdf

VBA Excel Quick Training

http://excelquotient.wordpress.com

You might also like