Anda di halaman 1dari 14

BAB 9

KONTROL PROGRAM

9.1 Pencabangan On Error


Pencabangan On Error digunakan untuk menangani Run-time error dalam
Macro. Ada tiga bentuk penulisan penanganan kesalahan, yaitu:

9.1.1 On Error GoTo <label>


Pencabangan On Error GoTo <label> akan menyebabkan penanganan error
aktif. Jika terjadi kesalahan pada Macro, maka kesalahan yang terjadi
tersebut akan menunjuk ke <label> untuk proses selanjutnya. Perhatikan
contoh Macro berikut:
Sub BuatWorksheet()

On Error GoTo Pesan

Set NewSheet = Worksheets.Add


NewSheet.Name = "Sheet1"

Pesan:
MsgBox "Nama worksheet sudah ada"
ActiveSheet.delete

End Sub

Jika Macro dijalankan, maka akan dibuah worksheet dengan nama Sheet1.
Macro akan error jika sudah ada worksheet dengan nama Sheet1. Jika hal
tersebut terjadi, maka Macro akan menampilkan kotak pesan “Nama
worksheet sudah ada”.

145
Gambar 9.1 Nama worksheet sudah ada.

9.1.2 On Error Resume Next


Pencabangan On Error Resume Next akan melanjutkan ke perintah
selanjutnya jika terjadi error. Macro akan tetap dijalankan sampai baris kode
Macro terakhir dalam procedure. Perhatikan contoh Macro berikut:
Sub BuatWorksheet()

On Error Resume Next

Set NewSheet = Worksheets.Add


NewSheet.Name = "Sheet1"

End Sub

Gambar 9.2 Worksheet tetap dibuat dengan nama default.


146
9.1.3 On Error GoTo 0
Pencabangan On Error GoTo 0 akan menyebakan perangkap kesalahan yang
sebelumnya dipasang menjadi tidak aktif.

9.2 Struktur Kontrol Keputusan


Visual Basic for Application menyediakan fasilitas untuk pengambilan
keputusan berdasarkan kondisi tertentu, yaitu If…Then, If…Then…Else
dan pernyataan Select Case.

9.2.1 If…Then
Pernyataan If…Then memungkinkan Anda untuk menjalankan sebuah
statement atau beberapa statement apabila suatu kondisi terpenuhi. Format
kode Macro untuk pernyataan If…Then adalah sebagai berikut:
If Kondisi Then

Statement

End If

Apabila kondisi yang diseleksi terpenuhi, maka statement yang mengikuti


Then akan diproses. Sebaliknya, apabila kodisi tidak terpenuhi, maka
statement tidak akan diproses. Berikut contoh Macro penggunaan pernyataan
If…Then:
Sub IfThen()

Test = InputBox("Masukkan nilai lebih besar dari 75", _


"Masukkan Angka")

If Test > 75 Then


MsgBox "Nilai yang Anda masukkan " & Test & vbCrLf & _
"Nilai tersebut memenuhi standar", vbOKOnly, "Nilai Standar"
End If

End Sub
Setelah Macro IfThen dijalankan, muncul kotak input Masukkan Angka
seperti terlihat pada Gambar 9.3.

147
Gambar 9.3 Kotak input Masukkan Angka.

Masukkan data angka tertentu pada kotak input. Jika data yang dimasukkan
lebih kecil atau sama dengan 75, maka statement untuk menampilkan kotak
pesan tidak akan dijalankan. Namun jika data yang dimasukkan lebih besar
dari 75, maka statement untuk menampilkan kotak pesan akan dijalankan.

Gambar 9.4 Kotak pesan Nilai Standar.

9.2.2 If…Then…Else
Pernyataan If…Then…Else digunakan untuk mendefinisikan beberapa blok
statement yang akan dijalankan salah satu berdasarkan kondisi yang
memenuhi syarat. Format kode Macro untuk pernyataan If…Then…Else
adalah sebagai berikut:
If Kondisi1 Then

Statement1

ElseIf Kondisi2 Then

Statement2

Else

148
Statement3

End If

VBA pada awalnya akan menguji Kondisi1. Jika Kondisi1 terpenuhi, maka
Statement1 akan dijalankan. Apabila tidak terpenuhi, maka VBA akan
menguji Kondisi2 dan seterusnya sampai ditemukan suatu kondisi yang
memenuhi syarat untuk menjalankan Statement. Berikut contoh Macro
penggunaan pernyataan If…Then…Else:
Sub IfThenElse()

Test = InputBox("Masukkan nilai angka tertentu", _


"Masukkan Angka")

If Test < 50 Then


MsgBox "Nilai Anda kurang", vbOKOnly, "Nilai Kurang"
ElseIf Test < 75 Then
MsgBox "Nilai Anda cukup", vbOKOnly, "Nilai Cukup"
ElseIf Test < 100 Then
MsgBox "Nilai Anda bagus", vbOKOnly, "Nilai Bagus"
Else
MsgBox "Nilai yang Anda masukkan salah", _
vbOKOnly, "Nilai Salah"
End If

End Sub
Setelah Macro IfThenElse dijalankan, muncul kotak input Masukkan Angka
seperti terlihat pada Gambar 9.3. Jika data yang dimasukkan lebih kecil dari
50, maka ditampilkan kotak pesan Nilai Kurang seperti terlihat pada Gambar
9.5.

Gambar 9.5 Kotak pesan Nilai Kurang.

Jika data yang dimasukkan antara 50 sampai dengan 75, maka ditampilkan
kotak pesan Nilai Cukup seperti terlihat pada Gambar 9.6.

149
Gambar 9.6 Kotak pesan Nilai Cukup.

Jika data yang dimasukkan lebih besar dari 75, maka ditampilkan kotak pesan
Nilai Bagus seperti terlihat pada Gambar 9.7.

Gambar 9.7 Kotak pesan Nilai Bagus.

Jika data yang dimasukkan tidak memenuhi salah satu kondisi yang
disyaratkan (misalnya Anda memasukkan data bukan angka), maka
ditampilkan kotak pesan Nilai Salah seperti terlihat pada Gambar 9.8.

Gambar 9.8 Kotak pesan Nilai Salah.

150
9.2.3 Select Case
Pernyataan Select Case digunakan untuk menguji sebuah Ekspresi pada
setiap pernyataan Select Case. Format kode Macro untuk pernyataan Select
Case adalah sebagai berikut:
Select Case Ekspresi

Case Ekspresi1

Statement1

Case Ekspresi2

Statement2

Case Ekspresi3

Statement3

End Select

Apabila ada Ekspresi yang sesuai dengan dengan nilai pada suatu Case, maka
Statement dalam Case tersebut yang akan dijalankan. Berikut contoh Macro
penggunaan pernyataan Select Case:
Sub SelectCase()

Test = InputBox("Masukkan nilai angka tertentu", _


"Masukkan Angka")

Select Case Test


Case Is < 50
MsgBox "Nilai Anda kurang", vbOKOnly, "Nilai Kurang"
Case Is < 75
MsgBox "Nilai Anda cukup", vbOKOnly, "Nilai Cukup"
Case Is < 100
MsgBox "Nilai Anda bagus", vbOKOnly, "Nilai Bagus"
End Select

End Sub

Setelah Macro SelectCase dijalankan, proses yang terjadi selanjutnya akan


sama dengan proses saat menjalankan Macro IfThenElse.

151
9.3 Struktur Pengulangan
Struktur pengulangan dalam VBA adalah sebuah struktur yang menjalankan
beberapa statement secara berulang-ulang. VBA mempunyai 3 jenis struktur
pengulangan, yaitu Do…Loop, For…Next, While…Wend dan For
Each…Next.

9.3.1 Do…Loop
Struktur pengulangan Do…Loop digunakan untuk menjalankan satu atau
beberapa pernyataan jika kondisi benar atau hingga suatu kondisi tersebut
menjadi benar. Kata kunci untuk struktur pengulangan yang menjalankan
statement jika kondisi benar adalah While. Format kode Macro struktur
Do…Loop dengan kata kunci While adalah sebagai berikut:
Do While Kondisi

Statement

Loop

Kata kunci untuk struktur pengulangan yang menjalankan statement hingga


suatu kondisi tersebut menjadi salah adalah Until. Format kode Macro
struktur Do…Loop dengan kata kunci Until adalah sebagai berikut :
Do Until Kondisi

Statement

Loop

Berikut contoh Macro penggunaan struktur pengulangan Do…Loop dengan


kata kunci While:
Sub TanggalBulanIni1()

Dim TheDate As Date


TheDate = DateSerial(Year(Date), Month(Date), 1)
Do While Month(TheDate) = Month(Date)
ActiveCell = TheDate
TheDate = TheDate + 1
ActiveCell.Offset(1, 0).Activate
Loop

End Sub

152
Setelah Macro TanggalBulanIni1 dijalankan pada awalnya akan
dimasukkan tanggal 1 pada bulan dan tahun ini pada sel aktif. Sel
dibawahnya kemudian akan diisi tanggal 2 dan seterusnya sampai tanggal 31.
Ketika akan masuk pada tanggal 1 September program akan dihentikan
karena data yang dimasukkan adalah tanggal khusus untuk bulan Agustus.

Gambar 9.9 Data tanggal khusus bulan Agustus.

Berikut contoh Macro penggunaan struktur pengulangan Do…Loop dengan


kata kunci Until:
Sub TanggalBulanIni2()

Dim TheDate As Date


TheDate = DateSerial(Year(Date), Month(Date), 1)
Do Until Month(TheDate) <> Month(Date)
ActiveCell = TheDate
TheDate = TheDate + 1
ActiveCell.Offset(1, 0).Activate
Loop

End Sub

Setelah Macro TanggalBulanIni2 dijalankan pada awalnya akan


dimasukkan tanggal 1 pada bulan dan tahun ini pada sel aktif. Sel
dibawahnya kemudian akan diisi tanggal 2 dan seterusnya sampai tanggal 31.
Ketika akan masuk pada tanggal 1 September program akan dihentikan
karena bulan September bukan bulan Agustus.

153
9.3.2 For…Next
Struktur pengulangan For…Next digunakan untuk menjalankan satu atau
beberapa statement dengan frekwensi pengulangan yang telah ditentukan.
Struktur pengulangan For…Next digunakan untuk kondisi yang mempunyai
nilai berurutan dan variabelnya mempunyai nilai numerik. Format kode
Macro struktur For…Next adalah sebagai berikut:
For Variabel = NilaiAwal To NilaiAkhir

Statement

Next Variabel

Anda juga dapat menempatkan struktur pengulangan For…Next di dalam


struktur pengulangan For…Next yang lain, atau bisa disebut Nested For.
Format kode Macro struktur Nested For adalah sebagai berikut:
For Variabel1 = NilaiAwal1 To NilaiAkhir1

For Variabel2 = NilaiAwal2 To NilaiAkhir2

Statement

Next Variabel2

Next Variabel1

Berikut contoh Macro penggunaan struktur pengulangan For…Next:


Sub IsiData()

For Data = 1 To 10
Cells(Data, 1).Value = Data
Next Data

End Sub

Setelah Macro IsiData dijalankan, maka range A1:A10 akan terisi data seperti
terlihat pada Gambar 9.10.

154
Gambar 9.10 Penggunaan struktur pengulangan For…Next.

Penggunaan struktur pengulangan For…Next di dalam struktur pengulangan


For…Next yang lain (Nested For) dapat dilihat pada contoh Macro berikut:
Sub IsiData()

For Data1 = 1 To 10
For Data2 = 1 To 10
Cells(Data1, Data2).Value = Data1 * Data2
Next Data2
Next Data1

End Sub
Setelah Macro IsiData1Sampai100 dijalankan, maka range A1:J10 akan terisi
data seperti terlihat pada Gambar 9.11.

Gambar 9.11 Penggunaan Nested For.


155
9.3.3 While…Wend
Struktur pengulangan While…Wend digunakan untuk menjalankan satu atau
beberapa statement selama suatu kondisi itu benar. Format kode Macro
struktur While…Wend adalah sebagai berikut:
While Kondisi

Statement

Wend

Apabila kondisi benar, maka semua statement akan dijalankan dan ketika
mencapai baris Wend, kontrol akan kembali lagi ke baris While untuk
melakukan evaluasi kembali nilai dari kondisi. Apabila nilai kondisi masih
memenuhi syarat atau benar maka proses pengulangan akan terjadi lagi
sampai kondisinya salah. Apabila kondisi salah, maka program akan
dihentikan oleh Wend. Berikut contoh Macro penggunaan struktur
pengulangan While…Wend:
Sub TanggalBulanIni3()

Dim TheDate As Date


TheDate = DateSerial(Year(Date), Month(Date), 1)
While Month(TheDate) = Month(Date)
ActiveCell = TheDate
TheDate = TheDate + 1
ActiveCell.Offset(1, 0).Activate
Wend

End Sub

9.3.4 For Each…Next


Struktur pengulangan For Each…Next merupakan struktur pengulangan
elemen objek dalam group objek. Struktur pengulangan ini akan sangat
membantu jika Anda tidak mengetahui berapa elemen dalam group yang
akan diulang. Format kode Macro struktur For Each…Next adalah sebagai
berikut:
For Each Elemen in Group

Statement

Next Elemen

156
Berikut contoh Macro struktur pengulangan For Each…Next untuk mengatur
tampilan ukuran seluruh worksheet dalam workbook aktif menjadi 50%:
Sub TampilanSeluruhWorksheet50Persen()

'Mendeklarasikan WS sebagai worksheet


Dim WS As Worksheet

For Each WS In ActiveWorkbook.Worksheets


WS.Activate
ActiveWindow.Zoom = 50
Next WS

End Sub

Gambar 9.12 Tampilan ukuran seluruh worksheet menjadi 50%.

9.4 End
Statement End dipakai untuk memaksa kontrol program berhenti dari suatu
Sub Procedure, Function Procedure, ekspresi If atau deklarasi With.

9.4.1 End Sub


End Sub digunakan untuk mengakhiri sebuah Sub Procedure. Perhatikan
contoh berikut:
Sub BuatWorksheet()

Worksheets.Add

End Sub
157
9.4.2 End Function
End Function digunakan untuk mengakhiri sebuah Function Procedure.
Perhatikan contoh berikut ini:
Function LUAS(panjang, lebar)

LUAS = panjang * lebar

End Function

9.4.3 End If
End If digunakan untuk mengakhiri penggunaan ekpresi If.
Sub Nilai()

If Range("A1").Value < 5 Then


Range("A2").Value = "Nilai kurang"
End If

End Sub

9.4.4 End With


End With digunakan jika kita ingin mengakhiri penggunaan With di awal
sebuah pendeklarasian. Perintah With dan End With dapat digunakan untuk
menyingkat suatu penulisan objek yang berulang-ulang.
Sub FormatFont2()

Range("D6:F6").Font.Bold = True
Range("D6:F6").Font.Italic = True

End Sub

Contoh Sub Procedure berikut ini juga akan menghasilkan perintah yang
sama dengan Sub Procedure di atas:
Sub FormatFont1()

Range("D6:F6").Select

With Selection.Font
.Bold = True
.Italic = True
End With

End Sub
158

Anda mungkin juga menyukai