Bu yazıda Excel VBA’da değişken tanımlamada kullanılan anahtar kelimelerden Dim – Private ve Global – Public karşılaştırması yapağacağız.
Dim - Private
Private
çoğunlukla modül düzeyinde kullanılırken Dim
, Sub
yordam ya da Function
düzeyinde kullanılır. Eğer “gizli” bir değişken Module
düzeyinde tanımlanacaksa Private
ya da Dim
kullanılabilir, gel gelelim bir Sub
yordam ya da Function
içinde tanımlama yapacaksanız Dim
kullanmanız gerekir.Public - Global
Global
sadece standart modüllerde kullanılabilirken Public
her yerde (Module
, Class
, Control
, Form
) kullanılabilir. (Yalnız kodun başına Option Private Module
kodunun eklenip eklenmediğine bakıp ona göre hareket etmekte fayda var. Bu durumda Public
olarak tanımlanmış değişkeni diğer modüllerden çağırırken sıkıntı çıkabilir.)Global
Visual Basic’in eski sürümlerinden gelmektedir ve bu eski sürümlere uyumluluk göstermesi amacıyla tutulmaktadır. Public
, Global
‘in yerini almıştır.
Option Explicit
'--------------------------------------------------
'Geçerli yordam içinde her yerden kullanılabilir.
'--------------------------------------------------
Dim degisken1 As String
'--------------------------------------------------
'Geçerli yordam içinde her yerden kullanılabilir.
'--------------------------------------------------
Private degisken2 As Integer
'--------------------------------------------------
'Geçerli yordamda ve diğer yordamlarda kullanılabilir.
'--------------------------------------------------
Global degisken4 As String
'--------------------------------------------------
'Geçerli yordamda ve diğer yordamlarda kullanılabilir.
'--------------------------------------------------
Public degisken3 As Long
Sub mesaj1()
degisken1 = "Merhaba!" 'Dim
degisken2 = 1 'Private
degisken3 = 99999999 'Global
degisken4 = "Selam!" 'Public
MsgBox degisken1 & " | " & _
degisken2 & " | " & _
degisken3 & " | " & _
degisken4
End Sub