Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Pendahuluan

Artikel ini menjelaskan cara menggunakan variabel dalam Microsoft Excel sub-prosedur di Microsoft Visual Basic for Applications.

Informasi Selengkapnya

Variabel dalam sub procedure

Fitur canggih bahasa pemrograman adalah kemampuan untuk menyimpan sesuatu dalam variabel sehingga konten variabel dapat digunakan atau dapat diubah nanti dalam prosedur. Dokumen ini membahas penggunaan variabel berikut ini dalam Visual Basic:

  • Bagaimana variabel dideklarasikan.

  • Prosedur dan proyek yang bisa menggunakan variabel.

  • Masa berlaku variabel.

Mendeklarasikan variabel dalam makro

Cara paling sederhana untuk mendeklarasikan variabel dalam makro adalah menggunakan pernyataan Dim. Baris berikut ini menyatakan dua variabel, sebagai bilangan bulat:

    Dim x As Integer, y As Integer

Dengan x dan y yang ditentukan sebagai bilangan bulat, Anda memberitahukan Visual Basic untuk mengatur memori yang memadai untuk variabel bilangan bulat (2 byte masing-masing untuk x dan y) dan bahwa informasi yang disimpan di x atau y adalah bilangan bulat antara -32768 dan 32767.

CATATAN: Jika Anda mendeklarasikan lebih dari satu variabel dengan menggunakan pernyataan Dim tunggal, Anda harus menentukan tipe data untuk setiap variabel.

Jika Anda tidak menentukan tipe data untuk setiap variabel, seperti dalam kode Visual Basic, hanya variabel y yang diatur sebagai variabel bilangan bulat. Variabel x akan menjadi tipe varian:

    Dim x, y As Integer

Untuk informasi tambahan, lihat Tipe data varian di bawah ini.
 

Untuk melakukan uji variabel, ikuti langkah-langkah berikut:

  1. Simpan dan tutup buku kerja apa pun yang terbuka, lalu buka buku kerja baru.

  2. Memulai editor Visual Basic (tekan ALT+F11).

  3. Pada menu Sisipkan, klik Modul.

  4. Ketikkan kode berikut:

    Sub Variable_Test()
        Dim x Sebagai Bilangan Bulat, y Sebagai Bilangan Bulat
        x = 10
        y = 100
        MsgBox "nilai dari x adalah " & x & _
        Chr(13) & "nilai y adalah " & y
    End Sub

  5. Jalankan Variable_Test makro. Anda menerima pesan berikut:

    the value of x is 10
    the value of y is 100

  6. Klik OK.

  7. Di bagian Variable_Test makro mengubah baris berikut ini:

    x = 10

  8. ke:

    x = "error"

  9. Jalankan Variable_Test makro.

Anda akan menerima kesalahan run-time karena "kesalahan" bukan bilangan bulat, dan Anda mencoba menetapkan nilai string ini ke variabel bilangan bulat x.
 

Ringkasan tipe data

Berikut ini adalah tipe data variabel umum:

tipe data variabel umum

tipe data Varian

Jika Anda tidak menentukan tipe data saat Anda mendeklarasikan variabel, atau Anda tidak mendeklarasikan variabel sama sekali, Visual Basic secara otomatis menentukan tipe data varian untuk variabel ini. Berikut adalah keuntungan variabel yang dideklarasikan sebagai tipe data ini:

  • Variabel bisa berisi nilai string, tanggal, waktu, Boolean, atau numerik.

  • Variabel dapat mengonversi nilai yang ada di dalamnya secara otomatis.

Kelemahannya adalah bahwa variabel varian memerlukan memori setidaknya 16 byte. Memori 16 byte dapat signifikan dalam prosedur besar atau dalam modul yang kompleks.

Untuk melihat cara kerjanya di Variable_Test ini, ikuti langkah-langkah ini:

Ubah kode dalam makro Variable_Test menjadi:

Sub Variable_Test()
    Dim x, y
    x = "string"
    y = 1.23
    MsgBox "the value of x is " & x & _
    Chr(13) & "the value of y is " & y
End Sub

Jalankan Variable_Test makro.

Anda tidak akan menerima kesalahan karena Anda dapat menetapkan apa pun ke variabel varian x dan y.

CATATAN: Anda juga dapat membiarkan baris berikut ini dan makro masih akan berfungsi karena variabel x dan y diperlakukan sebagai tipe data Varian:

    Dim x, y

Lingkup variabel

Saat Anda mendeklarasikan sebuah variabel, itu mungkin terlihat atau tidak terlihat oleh makro lain dalam modul yang sama, di modul lain, atau di proyek lain. Ketersediaan variabel dalam modul ini disebut sebagai lingkup. Ketiga tipe lingkup tersebut adalah tingkat prosedur, tingkat modul pribadi, dan tingkat modul publik. Lingkupnya bergantung pada bagaimana dan di mana Anda mendeklarasikan variabel atau variabel Anda.

Lingkup tingkat prosedur

Variabel dengan lingkup tingkat prosedur tidak terlihat di luar prosedur di mana dideklarasikan. Jika Anda mengatur nilai variabel yang memiliki lingkup tingkat prosedur, konten variabel tersebut tidak akan terlihat oleh makro lainnya.

Untuk memverifikasi bahwa variabel dengan lingkup tingkat prosedur tidak terlihat di luar prosedur di mana variabel dideklarasikan, ikuti langkah-langkah ini:

  1. Sisipkan modul baru ke proyek Anda.

  2. Ketikkan kedua makro berikut ini ke dalam modul ini:
      Sub Macro1() Dim x As Integer x = 10 MsgBox "x, seperti yang terlihat oleh Macro1 adalah " & x 'baris berikutnya menjalankan Macro2 Macro2 End Sub Sub Macro2() MsgBox "x, seperti yang terlihat oleh Macro2 adalah " & x End Sub

  3. Jalankan Makro1, dan Anda akan mendapatkan pesan berikut:

    x, as seen by Macro1 is 10

  4. Klik OK,dan Anda akan mendapatkan pesan berikut:

    x, as seen by Macro2 is

  5. Klik OK.

Makro2 tidak menampilkan nilai untuk variabel x karena variabel x bernilai lokal untuk Makro1.

Lingkup tingkat modul publik dan privat

Anda dapat menentukan variabel di bagian deklarasi modul (di bagian atas modul, di atas semua sub prosedur), dan mengatur lingkup variabel Anda menggunakan Pernyataan publik, pernyataan Dim, atau pernyataan Pribadi. Jika Anda menempatkan Pernyataan publik di depan variabel Anda, variabel Anda akan tersedia untuk semua makro di semua modul dalam proyek. Jika Anda menempatkan pernyataan Dim atau pernyataan Private di depan variabel Anda, variabel Anda hanya tersedia untuk makro dalam modul di mana variabel dideklarasikan.

Untuk melihat perbedaan antara Pernyataan publik dan pernyataan Dim, ikuti langkah-langkah ini:

  1. Simpan dan tutup buku kerja apa pun yang terbuka lalu buka buku kerja baru.

  2. Memulai Visual Basic Editor.

  3. Sisipkan modul ke proyek Anda.

  4. Type the following code into this module:
    
    Public x As Integer
    Sub Macro_1a()
        x = 10
        MsgBox x
        Macro_1b
    End Sub
    Sub Macro_1b()
        x = x * 2
        MsgBox x
        Macro2
    End Sub
  5. Sisipkan modul lain ke dalam proyek Anda.

  6. Ketikkan kode berikut ke dalam modul ini:


    Sub Macro2()     x = x * 3
        MsgBox x
    End Sub

  7. Jalankan Macro_1a makro di modul pertama.

  8. Dengan variabel x dideklarasikan sebagai "Public x As Integer", ketiga makro di dalam proyek memiliki akses ke nilai x. Kotak pesan pertama menampilkan nilai 10. Kotak pesan kedua menampilkan nilai 20 (karena x dikalikan dengan 2 dalam Macro_1b). Kotak pesan ketiga menampilkan nilai 60 (karena nilai x diubah menjadi 20 di Macro_1b lalu dikalikan dengan 3 di Makro2).

  9. Mengubah baris deklarasi dalam modul pertama dari:

       Public x As Integer

    menjadi:

       Dim x As Integer

  10. Jalankan Macro_1a makro.

  11. Dengan variabel x dideklarasikan sebagai "Dim x Sebagai Bilangan Bulat", hanya makro dalam modul pertama yang memiliki akses ke nilai x. Jadi kotak pesan pertama menampilkan nilai 10, kotak pesan kedua menampilkan nilai 20, (karena x dikalikan dengan 2 di Macro_1b) dan kotak pesan ketiga menampilkan nilai 0 (karena Makro2 tidak melihat nilai x dan nilai nol yang tidak dimulai digunakan oleh Makro 2).

  12. Mengubah baris deklarasi dalam modul pertama dari:

      Dim x As Integer

    menjadi:

        Private x As Integer

  13. Jalankan Macro_1a makro.

  14. Kotak pesan yang sama ditampilkan dengan menggunakan lingkup Pernyataan pribadi saat menggunakan pernyataan Dim. Variabel x memiliki lingkup yang sama, privat pada modul di mana dideklarasikan.


CATATAN: Jika Anda ingin lingkup variabel Anda dibatasi pada modul di mana dideklarasikan, gunakan pernyataan Privatestatement dan bukan pernyataan Dim. Keduanya mendapatkan efek yang sama, tetapi lingkupnya lebih jelas ketika Anda membaca kode jika Anda menggunakan pernyataan Pribadi.
 

Masa berlaku variabel

Waktu di mana variabel mempertahankan nilainya disebut sebagai umurnya. Nilai suatu variabel dapat berubah selama masa berlakunya, namun akan mempertahankan nilai. Selain itu, saat variabel kehilangan lingkup, variabel tidak lagi memiliki nilai.
 

Memulai nilai variabel

Ketika Anda menjalankan makro, semua variabel diinisialisasi menjadi nilai. Variabel numerik diinisialisasi menjadi nol, string panjang variabel diinisialisasi ke string panjang-nol (""), dan string panjang tetap diisi dengan kode ASCII 0. Variabel varian diinisialisasi ke Kosong. Variabel kosong dinyatakan oleh nol dalam konteks numerik dan string panjang-nol ("") dalam konteks string.

Variabel tingkat prosedur

Jika Anda memiliki variabel yang dideklarasikan dalam makro dengan menggunakan pernyataan Dim, variabel mempertahankan nilainya selama makro berjalan. Jika makro ini memanggil makro lain, nilai variabel dipertahankan (tidak tersedia untuk makro lain) selama makro lainnya juga berjalan.

Untuk mendemonstrasikan cara kerja variabel tingkat prosedur, ikuti langkah-langkah ini:

  1. Sisipkan modul baru ke proyek Anda.

  2. Ketikkan kedua makro berikut ini ke dalam modul ini:

    Sub Macro1()
        'set x sebagai variabel tingkat prosedur
       Dim x Sebagai Integer
       MsgBox "nilai inisial x adalah " & x
       x = 10
        MsgBox "x adalah " & x
        'baris berikutnya menjalankan Macro2
        Macro2
        MsgBox "x masih " & x
    End Sub
    Sub Macro2()
        MsgBox "x, seperti yang terlihat oleh Macro2 adalah " & x
    End Sub

  3. Jalankan Makro1.

  4. Anda menerima pesan berikut:

        the initialized value of x is 0

  5. Klik OK,dan Anda akan mendapatkan pesan:

     x is 10

  6. Klik OK,dan Anda akan mendapatkan pesan berikut:

    x, as seen by Macro2 is

  7. Klik OK.

  8. Makro2 tidak menampilkan nilai untuk variabel x karena variabel x bernilai lokal untuk Makro1. Anda mendapatkan pesan berikut:

    x is still 10

  9. Klik OK.

  10. Jalankan Makro1.

Anda menerima pesan yang sama dengan yang dijelaskan di langkah 3 sampai 6 karena saat Makro1 berhenti berjalan di Langkah 6, nilai variabel x hilang. Oleh karena itu, saat Anda menjalankan kembali Makro1 di Langkah 7, pesan pertama memperlihatkan nilai x sebagai nol (nilai inisialisasi).

Kata kunci statis

Jika variabel tingkat prosedur dideklarasikan dengan menggunakan kata kunci Statis, variabel mempertahankan nilainya sampai proyek Anda direset. Oleh karena itu, jika Anda memiliki variabel statis, kali berikutnya Anda memanggil prosedur, variabel statis diinisialisasi ke nilai terakhirnya.

Untuk melihat cara kerja kata kunci Statis, ikuti langkah-langkah ini:

  1. Change the code in Macro1 to:
    
    Sub Macro1()
        'set x as a procedure level variable
        Static x As Integer
           MsgBox "the initialized value of x is " & x
        x = x + 10
        MsgBox "x is " & x
    End Sub
  2. Jalankan Makro1.

  3. Anda akan mendapatkan pesan:

    the initialized value of x is 0

  4. Klik OK,dan Anda akan mendapatkan pesan:

    x is 10

  5. Klik OK.

  6. Jalankan Makro1, dan Anda mendapatkan pesan berikut:

    the initialized value of x is 10

  7. Klik OK,dan Anda akan mendapatkan pesan berikut:

    x is 20

  8. Klik OK.

Nilai yang muncul di pesan berbeda untuk kedua kalinya karena variabel x dideklarasikan sebagai variabel statis dan variabel mempertahankan nilainya setelah Anda menjalankan Makro1 pada kali pertama.

CATATAN:  Jika Anda memiliki variabel tingkat modul, masa berlakunya sama seperti variabel tingkat prosedur statis.

Untuk memverifikasi masa berlaku variabel tingkat modul, ikuti langkah-langkah ini:

  1. Change the code in the module that contains Macro1 to the following:
    
    Dim x As Integer  'create a module-level variable
    Sub Macro1()
       MsgBox "the initialized value of x is " & x
       x = x + 10
       MsgBox "x is " & x
    End Sub
  2. Jalankan Makro1, dan Anda akan mendapatkan pesan berikut ini:

    the initialized value of x is 0

  3. Klik OK, dan Anda akan mendapatkan pesan berikut:

    x is 10

  4. Klik OK,

  5. Jalankan Makro1, dan Anda akan mendapatkan pesan ini:

    the initialized value of x is 10

  6. Klik OK.

  7. Anda menerima pesan berikut:

    x is 20

  8. Klik OK.

Nilai yang muncul di pesan berbeda untuk kedua kalinya karena variabel x dideklarasikan sebagai variabel statis dan mempertahankan nilainya setelah Anda menjalankan Makro1 pada kali pertama.
 

Mereset proyek untuk mengatur ulang variabel

Jika Anda ingin mereset nilai untuk variabel statis atau untuk variabel tingkat modul, klik tombol Reset pada tombol
Bar alat standar, atau klik Reset pada menu Jalankan.

Jika Anda melakukan ini untuk proyek Makro1 lalu menjalankan kembali Macro1,nilai variabel x diinisialisasi kembali ke nol dan Anda menerima pesan pertama:

    the initialized value of x is 0

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×