Bagaimana cara menggunakan pernyataan opsi eksplisit di vba?

Poin-poin penting

  • Opsi Eksplisit mengharuskan Anda mendeklarasikan semua variabel .
  • Ini adalah deklarasi yang dapat Anda gunakan di awal modul .
  • Anda dapat memasukkannya secara manual atau mengaktifkannya dari opsi.
  • Anda harus menggunakan Option Explicit hanya sekali.
  • Ini juga membantu Anda mengidentifikasi kesalahan ketik saat menggunakan variabel.

Apa itu opsi VBA eksplisit

Opsi Eksplisit adalah pernyataan yang dapat Anda gunakan di awal modul untuk memaksa Anda mendeklarasikan semua variabel. Saat Anda menambahkan pernyataan ini, VBA menampilkan kesalahan kompilasi saat Anda menjalankan kode dan juga menyorot variabel dalam kode yang perlu Anda deklarasikan.

vba-opsi-eksplisit

Saat Anda menambahkan opsi eksplisit di awal modul, VBA menambahkan garis pemisah di bawahnya, dan kemudian Anda dapat mulai menulis prosedur. Dan ketika Anda memiliki opsi deklarasi eksplisit dan menjalankan prosedur, VBA memeriksa apakah ada variabel yang tidak dideklarasikan dan menampilkan pesan kesalahan.

 Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
vba-tambahkan baris pemisah

Di atas adalah pesan yang Anda terima ketika suatu variabel tidak dideklarasikan.

Aktifkan opsi eksplisit di VBA

Untuk mengaktifkan pernyataan opsi eksplisit dalam modul, ikuti langkah-langkah berikut.

  1. Pertama, buka Visual Basic Editor dan pada menu Tools, klik Options.
    activate-option-explicit-in-vba
  2. Setelah itu, dalam opsi, buka tab editor dan centang kotak “Memerlukan deklarasi variabel”.
    editor-tab-and-tick-mark
  3. Pada akhirnya, klik OK.
  4. Setelah Anda melakukan ini, VBA akan menambahkan opsi eksplisit setiap kali Anda menambahkan modul baru.

Namun deklarasi ini tidak menambahkan ke modul Anda yang sudah ada, jadi Anda harus menambahkannya secara manual ke setiap modul yang ada satu per satu.

Bagaimana cara menambahkannya secara manual?

Seperti yang saya sebutkan, pernyataan Option Explicit harus muncul sebelum prosedur modul pertama (Sub atau Fungsi). Jadi Anda perlu menambahkan deklarasi ini di atas prosedur pertama (area deklarasi umum) dan pastikan Anda hanya menambahkannya satu kali.

area deklarasi umum

Jika Anda menambahkannya di dalam suatu prosedur atau di antara dua prosedur, VBA akan menampilkan kesalahan saat Anda mencoba mengeksekusi salah satu kode modul.

vba-akan-menunjukkan-kesalahan-pada-Anda

Contoh (Mengapa menggunakan Pernyataan Opsi Eksplisit adalah kebiasaan yang baik)

Izinkan saya menunjukkan kepada Anda sebuah contoh agar Anda memahami mengapa pernyataan Option Explicit sangat disarankan. Lihatlah kode berikut.

 Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

Dalam kode ini, saya mendeklarasikan variabel “myText” sebagai string dan kemudian menetapkan nilai variabel ini. Dan pada akhirnya, saya menggunakan kotak pesan yang menampilkan nilai variabel, tetapi jika Anda perhatikan lebih dekat, saya salah mengeja variabel ini sebagai “MyTxt” dan bukan “myText”.

variabel-dinyatakan

Sekarang ketika saya menjalankan kode ini, saya diperlihatkan kotak pesan kosong.

kotak pesan kosong

Saya memerlukan 2 menit Anda untuk membantu Anda memahami masalah sebenarnya di sini. Ketika saya salah mengetik nama variabel, VBA menganggapnya sebagai variabel terpisah, dan karena saya tidak menggunakan pernyataan opsi eksplisit, itu tidak menunjukkan kesalahan kepada saya.

salah ketik pada nama variabel

Inilah sebabnya mengapa kotak pesan menggunakan variabel kedua (salah ketik) yang tidak memiliki nilai yang ditetapkan padanya. Sekarang pikirkan sejenak; Jika Anda menulis kode yang panjang dan tidak menggunakan pernyataan opsi yang eksplisit, akan sulit untuk melacak kesalahan ini sampai Anda membaca ulang semua kode.

Tetapi dengan opsi deklarasi eksplisit AKTIF, ketika saya menjalankan kode ini saya mendapatkan kesalahan.

gunakan-opsi-eksplisit
 Option Explicit Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *