If...Thenmerupakan struktur percabangan yang paling sering digunakan di VBA Excel. Selama kondisi yang diperiksa hanya satu atau dua, penulisannya masih cukup sederhana.
Namun, bagaimana jika sebuah variabel memiliki banyak kemungkinan nilai?
Misalnya:
-
menentukan nilai huruf berdasarkan skor;
-
menentukan nama bulan berdasarkan angka;
-
menampilkan kategori pelanggan;
-
memilih tindakan berdasarkan kode menu.
Jika semua kondisi ditulis menggunakan If...ElseIf, kode akan menjadi semakin panjang dan sulit dibaca.
Untuk kondisi seperti ini, VBA menyediakan struktur Select Case.
Apa Itu Select Case?
Select Case adalah struktur percabangan yang digunakan untuk memilih satu dari beberapa kemungkinan kondisi berdasarkan sebuah nilai.
Dengan Select Case, Anda cukup menentukan nilai yang akan diperiksa satu kali, kemudian VBA akan menjalankan blok kode yang sesuai.
Sintaks Dasar
Sintaks umum Select Case adalah:
Select Case Ekspresi
Case Nilai1
'Kode
Case Nilai2
'Kode
Case Else
'Kode
End Select
Keterangan:
-
Ekspresi → nilai yang akan diperiksa.
-
Case → nilai yang akan dibandingkan.
-
Case Else → dijalankan jika tidak ada kondisi yang cocok.
Contoh 1 — Menentukan Hari
Sub NamaHari()
Dim Hari As Integer
Hari = 3
Select Case Hari
Case 1
MsgBox "Senin"
Case 2
MsgBox "Selasa"
Case 3
MsgBox "Rabu"
Case Else
MsgBox "Hari tidak valid"
End Select
End Sub
Karena nilai Hari adalah 3, hasilnya adalah "Rabu".
Menggunakan Beberapa Nilai dalam Satu Case
Satu blok Case dapat menangani beberapa nilai sekaligus.
Select Case Bulan
Case 12, 1, 2
MsgBox "Musim Hujan"
Case 6, 7, 8
MsgBox "Musim Kemarau"
End Select
Menggunakan Rentang Nilai
Select Case juga mendukung rentang nilai.
Sub NilaiHuruf()
Dim Nilai As Integer
Nilai = 82
Select Case Nilai
Case 90 To 100
MsgBox "A"
Case 80 To 89
MsgBox "B"
Case 70 To 79
MsgBox "C"
Case Else
MsgBox "D"
End Select
End Sub
Menggunakan Operator Perbandingan
Selain nilai tetap, Anda juga dapat menggunakan operator perbandingan dengan kata kunci Is.
Select Case Total
Case Is >= 1000000
MsgBox "Diskon Platinum"
Case Is >= 500000
MsgBox "Diskon Gold"
Case Else
MsgBox "Tidak ada diskon"
End Select
Perlu diperhatikan bahwa Is pada contoh ini berbeda dengan operator Is yang digunakan untuk membandingkan objek.
Di dalam Select Case, Case Is digunakan untuk membentuk kondisi perbandingan seperti >=, <=, atau <.
Menggunakan Teks
Select Case tidak hanya digunakan untuk angka.
Sub StatusPesanan()
Dim Status As String
Status = "Selesai"
Select Case Status
Case "Proses"
MsgBox "Pesanan sedang diproses."
Case "Selesai"
MsgBox "Pesanan telah selesai."
Case "Batal"
MsgBox "Pesanan dibatalkan."
End Select
End Sub
Studi Kasus
Misalkan sebuah toko memiliki kategori pelanggan berdasarkan total belanja.
Sub KategoriPelanggan()
Dim Total As Double
Total = 1250000
Select Case Total
Case Is >= 2000000
MsgBox "Diamond"
Case Is >= 1000000
MsgBox "Platinum"
Case Is >= 500000
MsgBox "Gold"
Case Else
MsgBox "Silver"
End Select
End Sub
Pendekatan ini jauh lebih mudah dibaca dibandingkan menggunakan beberapa ElseIf.
Select Case vs If...Then
| Select Case | If...Then |
|---|---|
| Cocok untuk banyak pilihan nilai | Cocok untuk sedikit kondisi |
| Kode lebih ringkas | Mudah digunakan pada kondisi sederhana |
| Lebih mudah dibaca | Fleksibel untuk kondisi yang kompleks |
Jika seluruh kondisi membandingkan satu variabel yang sama, Select Case biasanya menjadi pilihan yang lebih baik.
Kesalahan yang Sering Terjadi
Menggunakan Select Case untuk Kondisi yang Tidak Relevan
Jika setiap kondisi membandingkan variabel yang berbeda, If...Then sering kali lebih sesuai.
Gunakan Select Case ketika semua percabangan mengacu pada satu ekspresi yang sama.
Lupa Menambahkan Case Else
Walaupun bersifat opsional, Case Else sebaiknya tetap ditambahkan untuk menangani nilai yang tidak sesuai dengan kondisi mana pun.
Menulis Rentang Nilai yang Bertumpang Tindih
Contoh berikut dapat menghasilkan logika yang membingungkan.
Case 70 To 90
Case 80 To 100
Pastikan setiap rentang tidak saling bertumpang tindih agar hasil percabangan sesuai dengan yang diharapkan.
Tips Praktis
💡 Gunakan Select Case jika terdapat banyak kondisi yang membandingkan variabel yang sama.
💡 Gunakan Case Else sebagai kondisi cadangan.
💡 Susun rentang nilai secara berurutan agar kode lebih mudah dipahami.
💡 Hindari penggunaan Select Case jika kondisi melibatkan banyak variabel yang berbeda.
💡 Berikan komentar jika setiap Case menjalankan proses yang cukup panjang.
Ringkasan
| Pernyataan | Fungsi |
|---|---|
Select Case |
Memulai struktur percabangan |
Case |
Menentukan kondisi |
Case Else |
Menangani kondisi yang tidak cocok |
End Select |
Mengakhiri struktur Select Case |
Kesimpulan
Select Case merupakan struktur percabangan yang sangat berguna ketika Anda harus menangani banyak kemungkinan nilai dari satu variabel. Dibandingkan menggunakan rangkaian If...ElseIf, kode yang ditulis dengan Select Case biasanya lebih ringkas, lebih mudah dibaca, dan lebih mudah dipelihara. Dengan memilih struktur percabangan yang tepat, Anda dapat membuat program VBA menjadi lebih rapi dan lebih mudah dikembangkan.
