Penggunaan Array dan Statement FOR … NEXT Untuk Efisiensi Scripting VBA

lpmp

Artikel ini merupakan saran untuk peserta lomba multimedia LPMP Jateng 2014, penulis menjumpai penulisan script yang sama digunakan berulang kali dalam satu prosedur program.  Dalam hal ini, penulis menyarankan untuk menggunakan statement FOR … NEXT (VBA) untuk menyingkat script yang digunakan. Sebagai contoh , perhatikan gambar (slide 2) berikut ini

gbr_artikel

Obyek-obyek TextBox pada slide 2 adalah Slide2.TextBox1, Slide2.TextBox2, Slide2.TextBox3 dan Slide2.TextBox4.

Shapes untuk simbol benar memiliki nama : benar1, benar2, benar3 dan benar4

Shapes untuk simbol salah memiliki nama : salah1, salah2, salah3 dan salah4

Dan kunci jawaban soal adalah “Buenos Aires”, “Havana”, “Lima” dan “Roma”

 

Script (Prosedur) untuk tombol “CLEAR”  (tanpa statement FOR … NEXT) :

Public Sub hapus()

Slide2.TextBox1.Text = “”

Slide2.TextBox2.Text = “”

Slide2.TextBox3.Text = “”

Slide2.TextBox4.Text = “”

ActivePresentation.Slides(2).Shapes(“benar1”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah1”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“benar2”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah2”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“benar3”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah3”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“benar4”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah4”).Visible = msoFalse

End Sub

 

Script (Prosedur) untuk tombol “PERIKSA” (tanpa statement FOR … NEXT) :

Public Sub Periksa()

‘soal no.1

If Slide2.TextBox1.Text = “Buenos Aires” Then

ActivePresentation.Slides(2).Shapes(“benar1”).Visible = msoTrue

ActivePresentation.Slides(2).Shapes(“salah1”).Visible = msoFalse

Else

ActivePresentation.Slides(2).Shapes(“benar1”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah1”).Visible = msoTrue

End If

‘soal no.2

If Slide2.TextBox2.Text = “Havana” Then

ActivePresentation.Slides(2).Shapes(“benar2”).Visible = msoTrue

ActivePresentation.Slides(2).Shapes(“salah2”).Visible = msoFalse

Else

ActivePresentation.Slides(2).Shapes(“benar2”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah2”).Visible = msoTrue

End If

‘soal no.3

If Slide2.TextBox3.Text = “Lima” Then

ActivePresentation.Slides(2).Shapes(“benar3”).Visible = msoTrue

ActivePresentation.Slides(2).Shapes(“salah3”).Visible = msoFalse

Else

ActivePresentation.Slides(2).Shapes(“benar3”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah3”).Visible = msoTrue

End If

‘soal no.4

If Slide2.TextBox4.Text = “Roma” Then

ActivePresentation.Slides(2).Shapes(“benar4”).Visible = msoTrue

ActivePresentation.Slides(2).Shapes(“salah4”).Visible = msoFalse

Else

ActivePresentation.Slides(2).Shapes(“benar4”).Visible = msoFalse

ActivePresentation.Slides(2).Shapes(“salah4”).Visible = msoTrue

End If

End Sub

Bandingkan penulisan script di atas jika kita menggunakan statement FOR … NEXT, perhatikan gambar (Slide 3) berikut :

gbr_artikel

Obyek-obyek TextBox pada slide 3 adalah Slide3.TextBox1, Slide3.TextBox2, Slide3.TextBox3 dan Slide3.TextBox4.

Shapes untuk simbol benar memiliki nama : benar1, benar2, benar3 dan benar4

Shapes untuk simbol salah memiliki nama : salah1, salah2, salah3 dan salah4

Dan kunci jawaban soal adalah “Buenos Aires”, “Havana”, “Lima” dan “Roma”

Prosedur untuk obyek-obyek yang kita simpan dengan array:

Option Base 1

Public isi As Variant

Public kunci As Variant

Public simbolCek_B As Variant

Public simbolCek_S As Variant

Public Sub kumpulan()

isi = Array(Slide3.TextBox1, Slide3.TextBox2, Slide3.TextBox3, Slide3.TextBox4)

kunci = Array(“Buenos Aires”, “Havana”, “Lima”, “Roma”)

simbolCek_B = Array(ActivePresentation.Slides(3).Shapes(“benar1”), _

ActivePresentation.Slides(3).Shapes(“benar2”), _

ActivePresentation.Slides(3).Shapes(“benar3”), _

ActivePresentation.Slides(3).Shapes(“benar4”))

simbolCek_S = Array(ActivePresentation.Slides(3).Shapes(“salah1”), _

ActivePresentation.Slides(3).Shapes(“salah2”), _

ActivePresentation.Slides(3).Shapes(“salah3”), _

ActivePresentation.Slides(3).Shapes(“salah4”))

End Sub

 

Script (Prosedur) untuk tombol “CLEAR” (dengan statement FOR … NEXT) :

Public Sub hapus_m()

Call kumpulan

For i = 1 To 4

isi(i).Text = “”

simbolCek_B(i).Visible = msoFalse

simbolCek_S(i).Visible = msoFalse

Next

End Sub

 

Script (Prosedur)  untuk tombol “PERIKSA” (dengan statement FOR … NEXT) :

Public Sub Periksa_m()

Call kumpulan

For i = 1 To 4

If isi(i).Text = kunci(i) Then

simbolCek_B(i).Visible = msoTrue

simbolCek_S(i).Visible = msoFalse

Else

simbolCek_B(i).Visible = msoFalse

simbolCek_S(i).Visible = msoTrue

End If

Next

End Sub

Author: Abdul Karim

Integrasi Matematika dan Teknologi merupakan fokus perhatian saya, dalam memberikan kontribusi kepada pendidikan matematika di Indonesi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s