Skip to content

VBA Değişken Tanımlama Biçimleri

İÇİNDEKİLER

    Bu yazımızda sizlere VBA Değişken Tanımlama Biçimleri ‘ni anlatıyor olacağız. Değişkenler programcılığın temel öğelerinden biridir. Değişkenleri kullanmak ve yönetmek proje oluştururken olmazsa olmazlarımızdandır diyebiliriz. Olabildiğince sade biçimde sizlere anlatmaya çalışacağım. Hatırlatma: VBA ile ilgili diğer yazılarımızı da yine blog sayfamızda bulabilirsiniz. 👍🏻

     

    VBA Değişken Tanımlama Biçimleri Hakkında

    Değişkenler genellikle bir veriyi hafızada tutmak ve gerektiğinde bu veriyi kullanmak için vardır.
    Değişkenler genelde iki sınıfa ayrılır. Global (Genel) değişkenler ve Local (Yerel) değişkenlerdir.
    Global değişkenler programın bütün fonksiyonları tarafından kullanılabilirken, Local değişkenler sadece tanımlandıkları fonksiyonda kullanılır.
    Bir prosedür, fonksiyon veya yürütülen bir modülün ömrü boyunca geri çağrılabilir, yeniden atanabilir veya sabitlenebilir.
    Bir değişken bildirmek, kullanacağınız değişkenlerin adlarını ve değişkenin içereceği veri türünü belirtmenize olanak tanır.
    Örneğin, Sonuç = 10 ise, değişken Sonuç bir Integer Tam sayı olarak bildirilebilir.
    Değişken isimlerini genelde kısa ve akılda kalıcı bir biçimde oluştururuz. En çok tercih edilen değişken isimleri; i, a, n, x ,y ,z, s gibi tek karakterlik isimlerdir ki, kodlarda yazımı kolay olsun. Değişken adları kodlar içerisinde kullanırken hatırlayacağınız bir ad olursa, kod yazımı esnasında hata yapma olasılığınız azalır.
    Şimdi tanımlama kısmına geçebiliriz.

     

    Değişken tanımlama ile ilgili genel yazım kalıpları bu şekildedir.
    Dim değişken_adı [(diziboyutu)] As tipi
    Public değişken_adı [(diziboyutu)] As tipi
    Static değişken_adı [(diziboyutu)] As tipi

     

    Bu genel tanımlama ile beraber aşağıda belirtilen tanımlama yöntemleri de tercih edilebilir.

    1. Dim ile tanımlama
    2. Veri Tanımlayıcıları (Kısaltmalar) ile tanımlama
    3. DEF ile tanımlama

     

    Dim ile Tanımlama

    En çok bilinen ve kullanılan VBA Değişken Tanımlama yoludur.
    Yazım kalıbını Syntax yukarıda belirttik. Tekrar birkaç örnekle netleştirelim.
    Diyelim ki, A sütunundaki satırlarda (hücrelerde) kullanmak üzere satır adında bir değişken tanımlaması yapacağız, satır numaraları tam sayı oldukları için Veri Türleri makalemizde belirttiğimiz tam sayı veri tiplerinden birini kullanabiliriz. Kontrol ettireceğimiz satır sayısına veya hücrede olabilecek maksimum sayıya göre değişken veri tipini kullanmak daha uygun olacaktır. Sayısal ve Tam Sayı olarak kullanabileceğimiz, temelde uygun 3 değişken veri tipimiz var, ByteInteger ve Long. Eğer satır değişkenine atayacağımız sayısal veri 255 ve daha az ise, o zaman hafızada daha az yer kaplayan Byte değişken veri tipini kullanabiliriz. Eğer satır değişkenine atayacağımız sayısal veri -32767 ile +32768 arasında ise, o zaman da Integer değişken veri tipini kullanabiliriz. Daha büyük bir Tam Sayı olabilir ise, o zaman da Long değişken veri tipini kullanmalıyız. Eğer değişkeninin alabileceği maksimum sayıdan daha büyük bir sayı gönderilirse Overflow (Taşma) hatası alınır. Eğer Sayısal olarak belirtilen bir değişkene Metinsel bir ifade gönderilirse, o zaman da Type Mismatch (Tür Uyuşmazlığı) hatası alınız.

     

    Dim ile Değişken tanımlamaya birkaç örnek verelim;

    Sub PEAKUP()
        Dim satir As Long
        Dim sutun As Byte
        Dim metin As String
        Dim baslangic As Date
        Dim para As Currency
        Dim nesne As Object
        satir = 15
        sutun = 5
        metin = "Excel Turkey Forum"
        baslangic = "24.06.2018"
        para = 300
        Set nesne = ActiveSheet
    End Sub

    Bu şekilde her bir değişkeni ayrı ayrı satırlarda yazabildiğimiz gibi, istersek tek bir satırda da bu şekilde yan yana yazabiliyoruz.
    Sadece en başta Dim olması gerekiyor ve her bir değişken arasına virgül koyarak devam ediyoruz.

    Sub PEAKUP()
        Dim satir As Long, sutun As Byte, metin As String
        Dim baslangic As Date, para As Currency, nesne As Object
    End Sub

    Burada şuna dikkat etmek gerekiyor. Bazı kullanıcılar şurada yanılgıya düşüp yanlış bir tanımlama yapabiliyorlar.
    Yukarıda yazdığım kodu eğer bu aşağıdaki gibi yazmaya kalkarsanız, yani Dim ile başlayıp ilk değişkeni tanımladım diyerek, devam eden yandaki değişkenleri de uygun değişken veri tipleri ile tanımlamış olmazsınız.. “sutun”, “metin” tanımlamalarında veri tipleri belirtilmediği için, Byte ve String değil, tanımsız veri tipi olan Variant olarak belirtilmiş olur. Dim ile tanımladığım ilk değişkende veri tipi belirttiğiniz için, devamında gelen diğer değişkenleri de tanımlamış olmuyorsunuz, her bir değişenin ayrı ayrı tipini de belirtmelisiniz.

     

    Veri Tanımlayıcıları (Kısaltamalar) ile tanımlama

    Abbreviations (Kısaltmalar)

    Tür Bildirim son ekleri olarak da bilinir.
    Bu çok fazla kullanılmaz ama kodlarda tasarruf sağlar.
    VBA’ya değişken adının sonuna özel bir karakter ekleyerek bir değişken türünü söylemek de mümkündür.

    Dim sayi% 'Integer
    Dim uzunsayi& 'Long
    Dim toplam! 'Single
    Dim alttoplam# 'Double
    Dim odeme@ 'Currency
    Dim adi$ 'String
    Dim enuzunsayi^ ' 64 bit'te LongLong

     

    Veri Türü Kısaltması İfade Karakterleri

    VBA

    , veri türünü belirtmenin hızlı bir yolu olarak, bir değişkenin adına bir karakter eklemenize izin verir.
    Değişkenleri bildirmek için bu yöntem kullanılmamalıdır ve yalnızca geriye dönük uyumluluk amacıyla kullanılabilir.
    Aşağıdaki satır bir Double veri türü ile bir değişken bildirecektir.

    Dim dDouble#

    Ancak bu satır “As” anahtar sözcüğünü kullanarak bildirilmesi daha doğru olur.
    Dim dDouble As Double

     

    Veri Türü Kısaltmalar / Son Ekler

    Eğer kısaltmaları kullanırsanız, o zaman türü bildirmek zorunda değilsiniz.
    % ifadesini kullanırsanız, “As Integer” yazmanız gerekmez.
    Bu kısaltmalar, Variant‘lara hazır bilgi atamak için yararlı olabilir.

    Örnek; sayim = 10#

     

    DEF ile Tanımlama

    Değişkenlerimizi belirttiğimiz gibi birkaç farklı yöntemle tanımlayıp bildirebiliyorduk, bu yöntemlerden biri de DEF ile tanımlama.
    Bu tanımlama genellikle kod penceresinin en üstünde prosedürden bağımsız olarak yapılır.
    Değişken olarak kullandığımız isim ve veri tipini aşağıdaki gibi kısaltarak tanımlamasını yapabiliyoruz.
    Def+Tür ‘den sonra gelen harf ile başlayan değişkenlerin o türde olduğunu ifade eder.

    def ile değişken tanımlama tablosu

    Def ile tanımlamaya Dim ile arasındaki farkı gösteren bir örnek verelim..

    Öncelikle Dim ile değişkenlerimizi bu şekilde tanımlayalım.

    Sub PEAKUP()
        Dim satir As Integer, sutun As Integer
        Dim metin As String, harf As String, kelime As String
        Dim tarih As Date, baslangic As Date
        Dim rakam As Double, fiyat As Double
        satir = 10
        sütun = 5
        metin = "PEAKUP"
        harf = "E"
        kelime = "Kitap"
        tarih = "24.06.2018"
        baslangic = "14.12.1980"
        rakam = 1453.48
        fiyat = 5647.15
    End Sub

    Şimdi bu tanımlamayı bir de Def ile yapalım.

    DefInt S
    DefStr H, K, M
    DefDate B, T
    DefDbl F, R
    Sub PEAKUP()
        satir = 10
        sütun = 5
        metin = "PEAKUP"
        harf = "E"
        kelime = "Kitap"
        tarih = "24.06.2018"
        baslangic = "14.12.1980"
        rakam = 1453.48
        fiyat = 5647.15
    End Sub

    Gördüğünüz gibi sadece baş harflerini kullanarak türünü belirtip değişken tanılaması yapmış olduk.
    Bu noktada değişken tanımlamaları fazla yer kaplamasın ve daha az satırda görünsün isterseniz, Aşağıda belirtildiği gibi Def satırlarını iki nokta üst üste ( : ) ile tek satırda yan yana yazabilirsiniz.

    DefInt S: DefStr H, K, M: DefDate B, T: DefDbl F, R
    Sub PEAKUP()
        satir = 10
        sütun = 5
        metin = "PEAKUP"
        harf = "E"
        kelime = "Kitap"
        tarih = "24.06.2018"
        baslangic = "14.12.1980"
        rakam = 1453.48
        fiyat = 5647.15
    End Sub

    Bu arada tüm değişken isimlerini, değerlerini ve türlerini Locals Window‘dan kolaylıkla takip edebilir ve değerlendirebilirsiniz.

    def ile değişken tanılamayı locals windowda görüntüleme

     

    Daha fazla detay için Microsoft Docs sayfasına bakabilirsiniz.

    Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
    Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻