Mengatasi Error di dalam VBA

Error Handling di dalam VBA

Hampir tak ada program yang benar-benar sempurna ketika diciptakan pertama kali. Ketika dijalankan pada saat yang pertama program tersebut barangkali tidak ada masalah. Tetapi ketika suatu saat dijalankan dalam kondisi yang lain, tiba-tiba program tersebut mengalami error dan memaksa Anda untuk masuk ke mode debug. Mode debug sangat membingungkan user yang menggunakan program Anda karena mereka tidak mengetahui error yang mana yang dimaksud dan apa yang harus dilakukan. Langkah yang baik adalah Anda harus membuat suatu prosedur tambahan yang memberitahu kepada user (tentunya melalui message box) dari kemungkinan-kemungkinan error yang akan terjadi, atau biasa disebut juga Error Handling.

Langkah pertama dalam mengatasi error di VBA adalah Anda harus menambahkan statement On Error pada awal prosedur Anda (ditempat dipaling atas setelah nama prosedur), lalu pindahkan ke suatu alamat / label yang memuat prosedur dalam mengatasi error yang mungkin terjadi.

Ada tiga macam statement error handling di VBA, yaitu:

  • On Error GoTo Label
  • On Error GoTo 0
  • On Error Resume Next

On Error GoTo Label

Ini adalah statement error handling yang standard. Jika program Anda sederhana dan Anda mengetahui kemungkinan-kemungkinan error yang akan terjadi maka penggunaan error handling jenis ini baik untuk digunakan. Contoh:

Function MayCauseAnError()

    ‘ Enable error handler.

    On Error GoTo Error_MayCauseAnError

    . ‘ Sisipkan disini kode yang mungkin menyebabkan error.

    .

    .

Error_MayCauseAnError:

    . ‘ Sisipkan disini kode untuk mengatasi error yang mungkin terjadi.

    .

    .

End Function

On Error GoTo 0

Error handling jenis ini akan menonaktifkan proses debug error pada prosedure yang Anda buat. Dengan kata lain, setiap error yang terjadi langsung dimatikan, seakan-akan tidak terjadi error. Maka dari itu Anda tidak akan pernah mengetahui apakah ada error atau tidak pada program Anda. Pengunaan error handling jenis ini adalah buat mereka yang sudah yakin bahwa pada programnya tidak akan terjadi error, atau bisa juga buat mereka yang tidak ingin diganggu oleh pesan error yang muncul. Penggunaannya tidak memerlukan label dan prosedur yang lain, cukup ditempatkan dipaling atas prosedur Anda. Contoh:

 
 

Function MayCauseAnError()

    ‘ Enable error handler.

    On Error GoTo 0

    . ‘ Sisipkan disini kode yang mungkin menyebabkan error.

    .

    .

 
 

End Function

 
 

Alternatif lain dalam menggunakan error handling jenis ini adalah dengan memindahkan error yang mungkin terjadi langsung keakhir function atau sub procedure. Contoh:

 
 

Function MayCauseAnError()

    ‘ Enable error handler.

    On Error GoTo Nol

    . ‘ Sisipkan disini kode yang mungkin menyebabkan error.

    .

    .

Nol:

End Function

On Error Resume Next

Error handling jenis ini mengabaikan baris / statement yang menyebabkan error, kemudian  memindahkannya kebaris yang mengikutinya dari baris penyebab error tersebut. Anda dapat menggunakan error handling jenis ini jika Anda menginginkan pengecekan terhadap properties dari Err Object secara cepat setelah baris penyebab error tersebut, kemudian mengatasi error tersebut dengan suatu prosedur yang telah Anda buat. Contoh:

Function MayCauseAnError()

    ‘ Enable error handler.

    On Error GoTo Error_MayCauseAnError

    . ‘ Sisipkan disini kode yang mungkin menyebabkan error.

    .

    .

Exit_MayCauseAnError:

    Exit Function

Error_MayCauseAnError:

‘ Menampilkan informasi error yang terjadi.

    MsgBox “Error number ” & Err.Number & “: ” & Err.Description

    . ‘ Sisipkan disini kode untuk mengatasi error yang mungkin terjadi.

    .

    .

    ‘ Mengembalikan eksekusi dengan keluar dari function.

    Resume Exit_MayCauseAnError

<

p style=”text-align:justify;”>End Function

Leave a Reply

%d bloggers like this: