Vba Değişkenler ve Veri Tipleri-II


PUBLIC, PRIVATE, STATIC, CONST KAVRAMLARI

1.PUBLIC

Bir değişken public olarak tanımlanırsa bu değişkene bulunduğu modülden, diğer modüllerden ve prosedürlerden ulaşmak mümkündür.  İçinde bulunan modülde kodları yukarıdan aşağıya okurken değişkenin değerini bellekte tutar, bir alttaki koda ve ya bir sonra çalıştırılan modüle bu şekilde aktarır.

1.Ayni modül içerisinde i’yi public olarak tanımladıktan sonra iki ayrı kod yazalım.

vba_public

2.Deneme prosedürünü çalıştırdım, i değeri 5 geldi.

vba_public2
Deneme proseduru

3.Deneme2 prosedürünü çalıştırdım, i’nin ilk değerini aldı ve 10 ekledi, i değeri 15 oldu.

vba_public3
Deneme2 Proseduru

4. Tekrar Deneme prosedürünü çalıştırdım bu sefer 15 olan i değerine yine 5 ekledi ve i değeri 20 oldu.

vba_public4

 

5. Şimdi ikinci bir modül yarattım ve değeri en son 20 olan i değerine buradan ulaşabilecek miyiz bakalım.

vba_public6
Modul2

6.Deneme3 prosedürünü çalıştırdım, i değeri 20 olarak geldi.

vba_public5

 

2.PRIVATE

Private olarak tanımlanan bir değişkene ise yalnızca içinde bulunduğu modül üzerinden ulaşılır. Diğer modül ya da prosedürlerde tanınmaz. İçinde bulunan modülde kodları yukarıdan aşağıya okurken değişkenin değerini bellekte tutar ve bir alttaki koda bu şekilde aktarır.

Yukaridaki kodun aynisini yazdim ancak bu sefer i’yi private olarak tanimladim. Ayni modul icerisinde kodlari calistirdiginizda yukaridaki sonuclarin aynisini aldiginizi goreceksiniz.

vbaprivate

*Simdi ise Modul2 deki kodu calistiralim, private olarak tanimlandigi icin i degeri modeul2’ye aktarilamadi ve Variable not defined hatasi aldik.

vbaprivate2

3.STATIC

Dim ile yapılan değişken tanımlamalarında değişlenlere verilen değerler prosedür boyunca saklanır ve prosedür tamamlandığında değerler tekrar sıfırlanır. Ancak static tanımlamalarda durum farklıdır. Static ile tanımladığımız her değişkenin değeri prosedür sonunda hafızada tutulur ve aynı kod yeniden çalıştırıldığında bellekte tutulan önceki değer üzerinden prosedür başlar.

Şimdi yukarıdaki örneği hem Dim ile hem de Static ile yapalım ve ardaki farkı yakalamaya çalışalım.

static2

 

 

 

 

 

 

 

 

static

 

 

 

 

 

Yukarıda Dim ile tanımladığım prosedürde butona kaç defa basarsam basayım “E4” hücre değerinin hep 1 olduğunu göreceksiniz. Çünkü düğmeye her bastığımda tüm değişkenleri sıfırlayarak kodu yeni baştan okuyor.

Aynı prosedürü Static ile yazdığımda butona her basışımda değerin 1 arttığını göreceksiniz çünkü prosedür her başa döndüğünde bir önceki değerini hafızasında tutuyor. Button’a her basıldığında prosedür işlerken sayaç değeri her seferinde önceki değerin üzerine 1 koyarak ilerliyor.

static3

 

 

 

 

 

 

 

static4

 

 

 

 

 

4.CONST

Const kavramı constant yani sabit ifadesinin kısaltılmışıdır. İsminden de anlaşılacağı gibi değeri değişmeyen sabit değerli değişkenleri tanımlamak için kullanılır. En çok verilen örnek olan pi sayısını daire ile ilgili işlemler yaptığımız prosedürlerimizin başında tanımlayalım.

Option Explicit

Const pi = 3.14


Sub dairealan()

Dim r As Integer

Dim alan As Double

r=5

alan = pi * r ^ 2

MsgBox “dairenin alanı: ” & alan

End Sub

CONSTANT

Aynı modüle aşağıdaki daire çevresi hesaplayan kodu ekleyelim.

Sub dairecevre()

Dim r As Integer

Dim cevre As Double

r=5

cevre = 2 * pi * r

MsgBox “dairenin cevresi: ” & cevre

End Sub

CONSTANT

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s