Scope dari variable

Scope artinya jangkauan atau luas dari variable

—Procedure only

  • dideklarasikan didalam prosedur, hanya bisa digunakan dan dikenali di dalam prosedur tersebut, begitu program keluar dari prosedure yang bersangkutan maka nilai variabel akan direset ke nilai awal
  • Lihat code dibawah ini
  •  
  • Jika sub diatas dijalankan maka akan muncul display —menyatakan bahwa intLokal=0
  • Jika dioke, maka akan lanjut ke code berikutnya yang akan mengisi variabel tsb dng angka 100, lalu akan muncul display menyatakan intLokal=100
  • Karena intLokal adalah variabel bersifat lokal maka begitu kita jalankan lagi sub diatas maka variabel tersebut akan direset,  jika numeric(integer, long, single, dll) jadi nol, jika text jadi blank, jika variant jadi null

All procedure in a Module

  • Bisa dipakai dan dikenali oleh semua prosedur didalam suatu module, dideklarasikan diluar prosedur dan diawal module
  • nilainya masih ada dan dapat dikenali oleh Sub/Fungsi lain di module tersebut
  • Insert new Module (module2)
  • Lihat kode dibawah ini
  •  
  • Jalankan sub test_variabel, maka code akan memanggil sub test_variable_module
  • intLokal dideklarasikan dilokal jadi hanya akan bisa dikenali dilokal maka saat dijalankan sub test_variable_module() maka akan keluar kotak dialog
  •  scope01
  • Klik OK
  • scope02
  • intLokal dikenali karena masih discope sub test_variable_module()
  • Klik OK sekali lagi
  • maka akan masuk kembali  ke sub test_variabel()
  • scope03
  • intLokal sudah tidak dikenali karena diluar scopenya, namun intModule masih dikenali karena sub test_variable_module() dan sub test_variable_module() masih satu module
  • ini gambarannya
  • scope04

—All Procedure in All Module

  • Bisa digunakan oleh semua prosedur dalam file VBA bersangkutan. Dideklarasikan di awal module dan diberi prefik ‘Public’
  • ini seperti scope module hanya lebih luas, karena dikenali di module lain sepanjang berada di satu workbook
  • Buat lagi satu module baru (module3)
  • Ketik kode sbb :
  •  
  • Jalankan sub panggil_variable_module
  • ini hasilnya
  •  scope05
  • Klik OK , akan kembali ke module3 – sub Panggil_variable_module
  • scope06
  • variabel intModule tidak dikenali
  • Bagaimana agar suatu variabel dikenali disemua workbooks, kita taruh dimodule awal dan keyword “Dim” kita ganti menjadi “Public”
  • kita edit module3 terus diawal module kita ketik tambahan code
  •  
  • Sekarang intGlobal menjadi public dan bisa diakses dari mana saja di workbook ini
  • Kita buka lagi module2
  • Kita tambahi kode dibawah
  •  
  • Jalankan sub test_Variable_global
  • ini hasilnya
  • scope07

 

Static

  • Static berarti nilai dalam variabel disimpan jika kita kembali lagi ke sub/fuction tersebut. seperti kita tahu kalau variabel didekalarasikan di sub/fungsi maka bersifat lokal dan akan direset setiap kali kita masuk ke sub/fungsi bersangkutan, namun jika dideklarasikan dengan static maka nilai akan disimpan samapi workbook diclose
  • lihat code sbb :
  •  
  • Coba jalankan sub MySub beberapa kali
  • maka hasilnya selalu
  • scope08
  • ini dikarenakan semua variabel akan direset begitu program direstart/ dimulai dari awal
  • tidak perduli apakah scope dari variabel lokal, module maupun global
  • ada satu type variabel yang akan terus menyimpan isinya sampai workbook diclose atau tombol Reset diklik, yaitu static
  • ketik code berikut ini
  •  
  • Jika prosedur itu kita jalankan maka pertama akan menghasilkan nilai 1, kita jalankan yg kedua maka akan menghasilkan nilai 2, begitu seterusnya sampai workbook kita close atau tombol Reset diklik baru variabel Counter akan direset
  • scope09

 

 

PDF24    Send article as PDF   

Comments are closed.