Error Handling dengan On Error pada VBA Excel: Mengendalikan Error Agar Program Tetap Berjalan

Pernah Mengalami Program Langsung Berhenti?

Bayangkan Anda membuat sebuah aplikasi untuk mengimpor data dari file Excel.

Program berjalan dengan baik hingga suatu hari pengguna memilih file yang ternyata sudah dipindahkan atau dihapus.

Tanpa penanganan error, VBA akan langsung menampilkan pesan seperti berikut.

Run-time error

File not found

Program berhenti dan pengguna tidak mengetahui apa yang harus dilakukan.

Situasi seperti ini tentu kurang nyaman, terutama jika aplikasi digunakan oleh banyak orang.

Untungnya, VBA menyediakan mekanisme Error Handling untuk mengantisipasi kondisi tersebut.


Apa Itu Error Handling?

Error Handling adalah teknik untuk mengendalikan apa yang harus dilakukan program ketika terjadi Runtime Error.

Dengan Error Handling, program dapat:

  • Menampilkan pesan yang lebih mudah dipahami.

  • Menjalankan proses alternatif.

  • Mengabaikan error tertentu (jika memang aman).

  • Membersihkan sumber daya sebelum program berakhir.

  • Mencegah aplikasi berhenti secara tiba-tiba.

Error Handling tidak menghilangkan penyebab error, tetapi membantu program merespons error dengan lebih baik.


Mengenal Pernyataan On Error

Dalam VBA, Error Handling diawali dengan pernyataan:

On Error

Pernyataan ini memberi tahu VBA apa yang harus dilakukan ketika Runtime Error terjadi.

Bentuk yang paling umum adalah:

On Error GoTo Label

Selain itu, terdapat bentuk lain yang akan dibahas lebih mendalam pada artikel berikutnya, yaitu:

  • On Error Resume Next

  • On Error GoTo 0

Pada artikel ini, fokus utama adalah memahami konsep dasar penggunaan On Error.


Cara Kerja On Error

Perhatikan alur berikut.

Program Berjalan

↓

Terjadi Runtime Error

↓

On Error Aktif?

├── Tidak
│      ↓
│   Program Berhenti
│
└── Ya
       ↓
Jalankan Penanganan Error

Jika On Error belum diaktifkan, VBA akan menghentikan program.

Sebaliknya, jika sudah diaktifkan, alur program akan berpindah ke bagian penanganan error yang telah ditentukan.


Contoh Tanpa Error Handling

Sub BukaWorksheet()

    Worksheets("Laporan").Activate

    MsgBox "Worksheet berhasil dibuka."

End Sub

Jika worksheet Laporan tidak ada, program akan langsung berhenti dan MsgBox tidak pernah dijalankan.


Contoh Menggunakan On Error

Sub BukaWorksheet()

    On Error GoTo ErrorHandler

    Worksheets("Laporan").Activate

    MsgBox "Worksheet berhasil dibuka."

    Exit Sub

ErrorHandler:

    MsgBox "Worksheet tidak ditemukan."

End Sub

Jika worksheet tersedia, program berjalan normal.

Jika tidak tersedia, VBA langsung menuju bagian ErrorHandler dan menampilkan pesan yang lebih mudah dipahami.


Mengapa Menggunakan Exit Sub?

Perhatikan bagian berikut.

Exit Sub

Perintah ini digunakan agar setelah proses utama selesai, program tidak ikut menjalankan bagian penanganan error.

Tanpa Exit Sub, alur program akan terus turun ke label ErrorHandler, meskipun sebenarnya tidak terjadi error.


Struktur Dasar Error Handling

Berikut pola yang paling sering digunakan.

Sub NamaProsedur()

    On Error GoTo ErrorHandler

    'Kode utama

    Exit Sub

ErrorHandler:

    'Kode penanganan error

End Sub

Struktur ini menjadi dasar dalam banyak aplikasi VBA.


Studi Kasus

Misalkan Anda ingin membuka worksheet bernama Data.

Sub TampilkanData()

    On Error GoTo ErrorHandler

    Worksheets("Data").Activate

    MsgBox "Data berhasil ditampilkan."

    Exit Sub

ErrorHandler:

    MsgBox "Worksheet Data tidak tersedia."

End Sub

Dengan cara ini, pengguna memperoleh informasi yang jelas tanpa melihat pesan error bawaan VBA.


Menggunakan Pesan yang Informatif

Kurang baik:

MsgBox "Error!"

Lebih baik:

MsgBox "Data tidak dapat diproses karena worksheet tidak ditemukan."

Pesan yang spesifik akan membantu pengguna memahami masalah dan tindakan yang perlu dilakukan.


Kapan Sebaiknya Menggunakan On Error?

Gunakan Error Handling pada proses yang berpotensi mengalami Runtime Error, misalnya:

  • Membuka workbook.

  • Membaca atau menyimpan file.

  • Mengakses worksheet berdasarkan nama.

  • Menghapus worksheet.

  • Menghubungkan ke database.

  • Menggunakan objek eksternal.

Sebaliknya, jangan gunakan On Error untuk menutupi kesalahan logika atau syntax error.


Kesalahan yang Sering Terjadi

1. Lupa Menambahkan Exit Sub

Sub Contoh()

    On Error GoTo ErrorHandler

    MsgBox "Selesai"

ErrorHandler:

    MsgBox "Terjadi Error"

End Sub

Walaupun tidak ada error, pesan "Terjadi Error" tetap akan muncul karena alur program langsung mencapai label ErrorHandler.

Solusinya adalah menambahkan:

Exit Sub

sebelum label ErrorHandler.


2. Memberikan Pesan Error yang Terlalu Umum

Pesan seperti:

Terjadi Error.

kurang membantu pengguna.

Lebih baik jelaskan penyebab atau langkah yang dapat dilakukan.


3. Menganggap On Error Memperbaiki Error

On Error tidak menghilangkan penyebab masalah.

Pernyataan ini hanya mengatur bagaimana program bereaksi ketika Runtime Error terjadi.

Penyebab error tetap perlu diperbaiki agar aplikasi bekerja dengan benar.


Praktik Terbaik

✅ Gunakan On Error hanya pada bagian yang memang berpotensi menghasilkan Runtime Error.

✅ Berikan pesan yang mudah dipahami oleh pengguna.

✅ Tambahkan Exit Sub atau Exit Function sebelum label penanganan error.

✅ Pisahkan kode utama dan kode penanganan error agar mudah dibaca.

✅ Setelah menemukan penyebab error, lakukan perbaikan pada logika program, bukan hanya mengandalkan Error Handling.


Ringkasan

KonsepPenjelasan
Error Handling Teknik mengendalikan Runtime Error.
On Error Mengatur tindakan saat Runtime Error terjadi.
On Error GoTo Label Mengalihkan program ke bagian penanganan error.
Exit Sub Mencegah program masuk ke bagian Error Handler ketika tidak terjadi error.
Error Handler Bagian yang menangani kondisi error.

Kesimpulan

On Error merupakan dasar dari mekanisme Error Handling pada VBA Excel. Dengan menggunakannya, Anda dapat mengendalikan respons program saat Runtime Error terjadi sehingga aplikasi tidak langsung berhenti dan pengguna memperoleh informasi yang lebih jelas.

Meskipun demikian, Error Handling bukan pengganti kode yang baik. Tujuan utamanya adalah membuat aplikasi lebih tangguh dalam menghadapi kondisi yang tidak terduga, sementara penyebab error tetap harus dianalisis dan diperbaiki.


Latihan Mandiri

Latihan 1

Buat prosedur yang mencoba mengaktifkan worksheet bernama Laporan. Tambahkan On Error GoTo untuk menampilkan pesan jika worksheet tersebut tidak tersedia.


Latihan 2

Buat prosedur yang membuka sebuah workbook. Jika file tidak ditemukan, tampilkan pesan yang menjelaskan bahwa pengguna perlu memeriksa lokasi file.


Latihan 3

Uji sebuah prosedur dengan dan tanpa Exit Sub sebelum label ErrorHandler. Amati perbedaan alur program ketika tidak terjadi error.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.