Anda di halaman 1dari 30

Visual Basic for Application

Microsoft Office Excel

Blog XQ
http://excelquotient.wordpress.com

Blog XQ (http://excelquotient.wordpress.com)

How to Learn Any Software Easier

Jangan fanatik pada software tertentu dan membenci


software lain
If I think I can. Yes I can.
Cari manfaat mempelajari software tsb dan jadikan motivasi
Berkorban untuk membeli buku panduan atau mengunduh
panduan/software dari internet
Berdoa

Blog XQ (http://excelquotient.wordpress.com)

Agenda

VBA Excel Overview


Integrated Development Environment
Record Macro
Procedure & Function
Range/Cells
Worksheets/Sheets
Workbooks/Books
Application
Charts/Chart
Conditional & Looping Syntax
Visual Basic Controls
3

Blog XQ (http://excelquotient.wordpress.com)

VBA Excel Overview

Mengapa harus VBA Excel?

Dari mana saya bisa belajar VBA Excel?

Pekerjaan sama dan berulang-ulang


Data banyak
Praktis & cepat

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

Blog XQ (http://excelquotient.wordpress.com)

Integrated Development Environment

Macro Running Permission:

Record Macro:

Tools>Macro>Record New Macro

Visual Basic Editor:

Tools>Macro>Security

Tools>Macro>Visual Basic Editor


[Alt+F11]
Right click on sheet name then
select View Code

Running Macro:

Tools>Macro>Macro
[Alt+F8]

Blog XQ (http://excelquotient.wordpress.com)

Integrated Development Environment

Blog XQ (http://excelquotient.wordpress.com)

Record Macro

Record Macro

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

Bikin New File Excel


Tools>Macro>Record New Macro
Beri nama macro
Buka VB Editor
Buka Modul berisi procedure macro tadi
Perhatikan terjadi penambahan baris per baris
macro pada VB Editor ketika kita menjalankan
perintah pada GUI Excel.

Blog XQ (http://excelquotient.wordpress.com)

Provedure & Function

Procedure & Function

Semua kode program ditulis dalam procedure atau


function
Procedure tidak mengembalikan nilai
Function dapat mengembalikan nilai

Declaration

Variable yg dideklarasikan dalam procedure atau function


hanya berlaku secara lokal (pada prosedure atau function
tsb).
Variable global berlaku secara global di simpan di baris
paling atas.
Contoh: Public nama as string
8

Blog XQ (http://excelquotient.wordpress.com)

Provedure & Function

Contoh:
Public nama As String
Function kurangkan(angka1 As Integer, angka2 As Integer)
Dim hasil As Integer
kurangkan = angka2 - angka1
End Function
Sub tambahdankurang()
Dim nilai1 As Integer
Dim nilai2 As Integer
Dim nilai3 As Integer
Dim nilai4 As Integer
nilai1
nilai2
nilai3
nilai4

=
=
=
=

1982
9128
nilai1 + nilai2
kurangkan(nilai1, nilai2)

nama = "F-Xtudent"
namanya
End Sub
Sub namanya()
namamu = nama
End Sub

Blog XQ (http://excelquotient.wordpress.com)

Range/Cells

Range/Cells

Storing Value:

Assign Range Value:

Range(A1:A3).Copy Range(B1)

Activate Range rth,cth:


Activecell.Offset(r,c).Select

Insert Column:
Selection.EntireRow.Insert

Assign Absolute Formula:


Range(Sel).Formula==A2+A3

Assign Relative Formula:


Range(Sel).FormulaR1C1==R[1]C+R[
2]C

Font Manipulation:
Activecell.Font.
Name; Size
ColorIndex=(0-56);
Color=RGB(0-255, 0-255, 0-255)
Bold; Italic; Underline
(Boolean[True/False])

Paste Range:

Range(A1).Select
Range(A1:D5).Select
Range(Sel,SelName).Select

Copy Range to:

SelName=Range(E4).Address
SelName=Range(A1:E4).Address

Activate Range:

Sel=Activecell.Value

Assign Range Address:

Range(A1).Value=Statistika
Range(A2).Value=12

SelectionPasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Clear Range:

Range(A1:A3).Clear

Etc
10

Blog XQ (http://excelquotient.wordpress.com)

Worksheet/Sheets

Worksheets/Sheets

Add New Worksheet:

Assign Sheet Name:

WorkSheets(Grafik).Activate

Move Sheet:

Sheets(Grafik).Delete

Activate Sheet:

Worksheets(Sheet1).Name=Grafik

Delete Sheet:

Worksheets.Add After:=ActiveSheet

ActiveSheet.Move Before:=Sheets(Grafik)

Etc

11

Blog XQ (http://excelquotient.wordpress.com)

Workbooks/Books

Workbooks/Books

Add New Workbook:

Open Workbook:

Lokasi=ActiveWorkbook.Path

Accessing Range on Specific Workbook and Worksheet

ActiveWorkbook.Close

Get Location of Workbook:

ActiveWorkbook.Save
ActiveWorkbook.SaveCopyAs Filename:=C:\Data2.xls

Close Workbook:

Worknooks(Data).Activate

Save Workbook:

Workbooks.Open C:\Data.xls

Activate Workbook:

Set Newbook=Workbooks.Add
Newbook.Name=myData

Nilai=Workbooks(Data).Worksheets(Grafik).Range(A1:D5).Value

Etc

12

Blog XQ (http://excelquotient.wordpress.com)

Application

Application

Turn off Screen Updating:

Turn off Display Alert:

Application.Wait(Now+TimeValue(00:00:01))

Statust Bar:

Application.DisplayAlerts=False

Suspending Execution:

Application.ScreenUpdating=False

Application.Statusbar=Running

Etc

13

Blog XQ (http://excelquotient.wordpress.com)

Charts/Chart

Charts/Chart

Frekuensi Kondisi Pasar

BarChart

600
500
400
300
200

100

0
Ch
Excess Demand
Seimbang
Tekanan Jual
Char
arts
ts.A
.Add
dd
Ac
Deletert
Activ
tiveC
eCha
haChart:
rt.C
.Cha
hartrtTy
Type
pe==xlxlCCol
olum
umnC
nClu
lust
ster
ered
ed
Ac
tiv
eC
The other
types
of chart
could be learned use Record Macro command
rt
.S
et
ActiveCha
So
ce
DDat
hart.SetSour
a
So
ur
ce
ur
:=
ce
Sh
ata Source:=Shee
PlPlot
eets
ts("("Sh
Shee
eet1
t1")").R
otBy
By:=
.Ran
:=__
ange
ge("("A1
A1:B
:B5"
5"),),
xlxlCCol
olum
umns
ns
Ac
tiv
ActiveC
eCha
hartrt.L
.Loc
ocat
atio
ionnW
Whe
here
re:=
:=xlxlLo
Loca
catio
tionA
nAsO
sObj
Ap
bjec
ect,t,NNam
pl
ic
io
ame:
n.
e:=="S
C
om
"She
Applicat
heet
an
et1"
dB
ation.Comm
1"
ar
s(
ha
mandBars("C
rt
")
.V
is
ib
le
"C
=
ha
Fa
rt
ls
")
e
.V
is
ib
le
= False

Activesheet.Charts(Chart1).Delete

14

Blog XQ (http://excelquotient.wordpress.com)

Conditional & Looping Syntax

If <condition> then
<program>
Else If <condition> then
<program>
Else
<program>
EndIf

Select Case <variable>


Case <value>
<program>
Case <value>
<program>
End Select

Do while <condition>
<program>
Loop

Do until <condition>
<program>
Loop

For <condition>
<program>
Next

15

Blog XQ (http://excelquotient.wordpress.com)

Conditional & Looping Syntax

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

Select Case ActiveCell.Value


Case 1
letter = "satu"
Case 2
letter = "dua"
Case 3
letter = "tiga"
End Select

m = 0
Do Until ActiveCell.Value = ""
ActiveCell.Value = m
ActiveCell.Offset(1, 0).Select
m = m + 1
Loop

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

Blog XQ (http://excelquotient.wordpress.com)

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

17

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

Sheet Main

VB Controls

18

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls


VB Controls

Sheet Data

19

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

Sheet Support

20

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

21

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

=IF(Support!B2=TRUE,"Laki-laki",IF(Support!B2=FALSE,"Perempuan","")

22

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

23

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

Insert > Name > Define >

24

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

25

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

26

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

Program Code

Sheets (Main)

Private Sub record_Click()


simpan
End Sub
Private Sub vData_Click()
Sheets("Data").Activate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("D8").Select
End Sub

Sheets (Data)

Private Sub main_Click()


Sheets("Main").Activate
End Sub

ThisWorkbook

Private Sub Workbook_Open()


Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("Main").Activate
Range("D8").Value = ""
Sheets("Support").Range("B2").Value = "N.A."
Range("D10").Formula = "=IF(Support!B2=TRUE,""Laki-laki"",IF(Support!B2=FALSE,""Perempuan"",""""))"
Range("D12").Value = ""
Range("D14").Value = ""
Range("D8").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

27

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls


Module
Sub simpan()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'DECLARATION
Dim cID As String
Dim cJK As String
Dim cPPD As String
Dim cTK As String
Dim m As Integer
'ASSIGN 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
GoTo emptyform
End If
'VALIDATION & 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
GoTo duplicate
End If
''Check is Empty
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
Sheets("Main").Activate
Range("D8").Value = ""
Sheets("Support").Range("B2").Value = "N.A."
Range("D10").Formula = "=IF(Support!B2=TRUE,""Lakilaki"",IF(Support!B2=FALSE,""Perempuan"",""""))"
Range("D12").Value = ""
Range("D14").Value = ""
Range("D8").Select
'JUMP TO THE END OF PROGRAM
GoTo lastline
'GOTO LINE AS ERROR HANDLING
emptyform:
MsgBox "Fill the form correctly, please!"
GoTo lastline
duplicate:
MsgBox "Can't perform duplicate ID Responden."
Sheets("Main").Activate
lastline:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

28

Blog XQ (http://excelquotient.wordpress.com)

Visual Basic Controls

Finnishing Touch

Tools > Options


Lock cell
Data > Validation

29

asi
K
a
m
i
Ter

Jazaakumullah
Thank
You

ou
Arigat

Blog XQ
http://excelquotient.wordpress.com

Hatu
r

Nuhu
n

30

Anda mungkin juga menyukai