EXCEL VBA'DA CONST (SABİTLER) NEDİR?

 

Const, Constants'ı temsil eder ve VBA'da bulunan bir depolama kutusudur. Bir değişkeni sabit bir yöntemle tanımlamak ve ona her zaman sabit olacak bir değer atamak için kullanılır.


VBA Const, birinin sabit bir değişkene atanan değeri değiştiremeyeceği kodlar yazmamıza yardımcı olur. Bir kişinin adını bir makroda birkaç kez kullanmamız gereken bir durumu düşünün. Bir Const ile, kişinin adını her seferinde çift tırnak içine yazmamız gerekmez; bunun yerine, kişinin adını sabit bir değişkene atarız ve sabit değişkeni makro boyunca kullanabiliriz. Yani, adı değiştirmemiz gerekirse, tek bir noktada, yani sabit değişkene bir değer atama adımında değiştirilebilir.

Örneğin aşağıdaki koda bakın.

VBA Sabit Örneği - 1

Bu kodda, sabit değişken “MyName” “String” veri türündedir ve buna “Peter” değerini atadık ve sonucu bir mesaj kutusu kullanarak yazdırdık.

VBA Sabit Örneği - 2

Makronun yürütülmesi sırasında atanan değer değiştirilemez.


ÖNEMLİ NOKTALAR


  • VBA Const, prosedür boyunca aynı değişken değerini korumak istediğimizde bir değişken tanımlar.
  • Burada Const, Constants'ı ifade etmektedir.
  • VBA Const değişkenine bir değer atandığında, ona başka bir değer atayamayız.
  • VBA Const'u "Public" anahtar sözcüğüyle tanımlayarak tüm modüllerde kullanılabilir hale getirebiliriz.

VBA'da Const İfadesinin Sözdizimi

Aşağıda VBA Const'un genel söz dizimi yer almaktadır.

Const [Değişkenin adı] As [Atanacak Veri Türü] = [Tanımlı değişkene atanacak değer]

  • Const:  Bu, sabit bir değişkeni tanımlamak için kullanılan anahtar kelimedir. 
  • Değişkenin adı:  VBA Const anahtar sözcüğünden sonra değişken adını giriyoruz. Bir değişkeni adlandırmanın tüm kuralları burada da geçerlidir.
  • Veri Türü:  Tanımlanan değişkene atanabilecek veri türünü atamalıyız. Int, Boolean, Long, String vb. gibi VBA veri türleri atayabiliriz.
  • Değişken Değeri:  VBA Const ile değişken tanımlaması yapıldıktan sonra aynı satırda, tanımlanan değişkene eşittir işareti girerek bir değer atayacağız.

VBA'da Sabitlerin Durumu

Sabit değişkeni tanımlarken aklımızda tutmamız gereken birkaç temel şey vardır, bunlar şunlardır:

  1. VBA Const'a verilen isim en fazla 256 karakter içerebilir.
  2. Değişken adı sayısal bir değerle başlayamaz, ancak bir alfabe karakteriyle başlamalıdır.
  3. VBA Const değişken adını adlandırmak için VBA anahtar sözcüklerinden hiçbirini kullanamayız.
  4. Ad boşluk karakterleri ve özel karakterler içermemelidir. Ancak, yalnızca alt çizgi karakterlerini kullanabiliriz, örneğin, Total_Value.
  5. Tek bir VBA Const ifadesiyle birden fazla sabit tanımlayabiliriz.

VBA'da iki tür sabit bildirebiliriz. Bunlar:

  • İçsel Sabitler:  Bunlar VBA dil sistemine yerleştirilmiş sabitlerdir. Örneğin, vbOk, vbOkCancel, vbOkOnly, vb. içsel sabitlerden bazılarıdır.
  • Kullanıcı Tanımlı Sabitler: Bunlar, kullanıcının VBA Const. kullanarak tanımladığı sabitlerdir.

VBA Const Nasıl Kullanılır?

VBA Sabit değişkenini tanımlamaya yönelik adım adım bir yaklaşımı size gösterelim.

  1. Alt rutin prosedürünü adlandırarak makroyu başlatın.


    VBA Const Nasıl Kullanılır - Adım 1

  2. Sabit bir değişken tanımlamak için Const anahtar sözcüğünü kullanın.


    VBA Const Nasıl Kullanılır - Adım 2

  3. Şimdi yukarıdaki koşullara göre değişken adını girelim.


    VBA Const Nasıl Kullanılır - Adım 3

  4. Değişken adı verildikten sonra, ona bir veri türü atamalıyız. Tanımlanan değişkene gereksinime göre herhangi bir veri türü atayabiliriz. Örneğin, değişkene uzun veri türünü atarız.


    VBA Const Nasıl Kullanılır - Adım 4

  5. Genellikle, bir değişkenin bildirimi burada sona erer. Ancak, sabit bir değişken bildirdiğimizde, bir adım daha ileri gitmeli ve eşittir işaretinden sonra tanımlanan değişkene bir değer atamalıyız.


    VBA Const Nasıl Kullanılır - Adım 5

    Artık bu sabit değişkeni “MyVar” alt rutin prosedürü içerisinde kullanabiliriz ve bu değişkenin değeri (216676) alt prosedür boyunca aynı kalır; değişkene başka bir değer atayamayız.

VBA'da Const İfadesinin Örnekleri

Size VBA Const değişkenlerine dair birkaç örnek gösterelim.

Örnek 1 – Bir Sabit Tanımlayın ve Ona Bir Değer Atayın

Excel çalışma sayfasında bazı satış elemanlarına verilen teşvikleri hesapladığımızı varsayalım.

Excel'de VBA Sabiti - Örnek 1

Teşvik, satış değerinin %5'i olacak ve %5 sabit kalacaktır. Bu nedenle, bu %5 değerini sabit bir değişkene atayacağız.

Aşağıdaki kod bunun bir örneğidir.

Sub Const_Example1()
'Bir değişken tanımla ve son kullanılan satırı bul
Dim LR As Long
LR = Cells(Rows.Count, 1).End(xlUp).Row
'Bir değişken tanımla ve son kullanılan sütunu bul
Dim LC As Long
LC = Cells(1, Columns.Count).End(xlToLeft).Column
'Tüm hücreleri dolaşacak bir değişken tanımla
Dim k As Long
'Sabit değişkeni ve teşviki tanımla %
Const Sales_Incentive As Variant = 0.05
MsgBox Sales_Incentive
'Tüm hücreleri dolaş
For k = 2 To LR
Cells(k, 3).Value = Cells(k, 2).Value * Sales_Incentive
Next k
End Sub

Örnek 1 - 1
  • Yukarıdaki kodda Sales_Incentive adında sabit bir değişken tanımladık.
  • Bu değişkene %5 oranında teşvik oranı atadık.
  • Bu değer, tüm hücreler arasında döngü yapılarak satış değeri ile çarpılır ve döngüye giren hücrelerin her birindeki teşvik değeri bize verilir.
  • Bu kodu çalıştırdığımızda çalışma sayfasında aşağıdaki çıktıyı alırız.
  • “C” sütununda görüldüğü üzere sabit değişken (Sales_Incentive) değeri olan 0,05 (5%) baz alınarak teşvik tutarına ulaşılmıştır.
Excel'de VBA Sabiti - Örnek 1 - 2

Örnek 2 – Sabit Bir Değişkenin Atanmış Değerini Değiştiremeyiz

Dim ifadesinin temel özelliklerinden biri  , alt prosedürün herhangi bir aşamasında değişkene belirli bir veri türü değeri atayabilmemiz ve aynı alt prosedürde aynı veri türündeki herhangi bir değeri birden çok kez atayabilmemizdir.

Örneğin aşağıdaki koda bakın.

Sub Const_Example2()
'Değişkene ait ilk değer kümesi
Dim MyVar As Long
MyVar = 1000
MsgBox MyVar
'Değişkene ait ikinci değer kümesi
MyVar = 5000
MsgBox MyVar
End Sub

Excel'de VBA Sabiti - Örnek 2 - 1

Bölüm 1

  • Bu bölümde “MyVar” değişkenini tanımlıyoruz ve ona  “ Long ” veri tipini atıyoruz.
  • Buna “ 1000 ” değerini atıyoruz ve mesaj kutusunda atanan değeri gösteriyoruz. 
  • Kodu çalıştırdığımızda aşağıdaki mesaj kutusu parça #1'e atanmış değeri gösterir.
Örnek 2 - 2

Bölüm 2

  • Bu kısımda aynı değişkene farklı bir değer atıyoruz fakat aynı veri tipinde.
  • Bu aşamada “ 5000 ” değerini atıyoruz ve mesaj kutusuna aşağıdaki değeri alıyoruz.
  •   Aynı değişkene aynı veri tipinde iki farklı değer atadık ve hala iki farklı değer kabul ediyor.
  • Ancak, VBA Const değişkeni için durum böyle değildir. Değer değişkene atandıktan sonra, herhangi bir değeri yeniden atayamayız.
Örnek 2 - 3

Örneğin aşağıdaki koda bakın.

Sub Const_Example2()
'Değişkene ait ilk değer kümesi
Const MyVar As Long = 1000
MsgBox MyVar
'Değişkene ait ikinci değer kümesi
MyVar = 5000
MsgBox MyVar

End Sub

Excel'de VBA Sabiti - Örnek 2 - 4

Bölüm 1'de VBA Const anahtar kelimesi ile bir değişken tanımladık ve buna "1000" değerini atadık.

Bölüm 2'de aynı değişken için "5000" değerini yeniden atıyoruz. Kodu çalıştırmayı deneyelim ve ne olacağını görelim.

Excel'de VBA Sabiti - Örnek 2 - 5

Bir derleyici hatası alıyoruz, “Assignment to constant not allowed.” Bu, Const Değişkenine bir kez atandığında değeri yeniden atayamayacağımız anlamına gelir. Değer VBA Const değişkenine atandığında, yeniden atayamayız.

Sabitler Modüller Arasında Nasıl Kullanılabilir Hale Getirilir?

Bir VBA Const değişkeni tanımladığımızda, bu alt prosedür içinde kullanılabilir. Ancak, tüm modüllerde kullanılabilir hale getirilebilirler. Bunun için aşağıdaki adımları takip ederiz.

Adım 1 – Bunları Bir Modüle Erişilebilir Kılmak İçin VBA Sabit Değişkenini Bildirin

VBA Const değişkenlerini modül içinde kullanılabilir hale getirmek için, bunları en üstte bildirmeliyiz. Örneğin, aşağıdaki koda bakın.

Modüller Arasında Sabitlerin Kullanılabilir Hale Getirilmesi - Adım 1

Kodlama penceresindeki “Modül 2”de alt prosedüre başlamadan önce VBA Const değişkenlerini tanımladık ve bunlara göre değerler atadık.

Sonraki alt prosedürlerde bu VBA Const değişkenlerini kullandık. Resimde görebileceğiniz gibi, ilk alt prosedürde ve ikinci alt prosedürde VBA Cons String değişkeni “First_Name” var.

Adım 2 – Tüm Modüller İçin Kullanılabilir Hale Getirmek İçin VBA Sabit Değişkenini Bildirin

Önceki adımın, VBA Const değişken bildiriminin dezavantajlarından biri, tanımlanan değişkenleri başka bir modülde kullanamamamızdır. Örneğin, aşağıdaki koda bakın.

Modüller Arasında Sabitlerin Kullanılabilir Hale Getirilmesi - Adım 2a

Modül 1'deyiz ve buradan Modül 2'de tanımlanan VBA Sabitleri değişkenlerine erişmeye çalışıyoruz. Görüldüğü gibi, IntelliSense listesi Modül 2'de tanımlanan VBA Sabitleri Listesi'nde görünmüyor.

Bunları modüller arasında kullanılabilir kılmak için tanımlarken  " Public " anahtar sözcüğünü kullanmalıyız . Değişkeni tanımlamak için VBA Const Public kullanırız  . Örneğin, aşağıdaki koda bakın.

Modüller Arasında Sabitlerin Kullanılabilir Hale Getirilmesi - Adım 2b

Modül 2'de VBA Const değişkenini tanımlamak için “Public” anahtar sözcüğünü kullandık.

Şimdi buna Modül 1'den erişelim.

Modüller Arasında Sabitlerin Kullanılabilir Hale Getirilmesi - Adım 2c

Modül 1 alt prosedüründe, Modül 2'de tanımlanan VBA Sabit Listelerine erişebiliriz. IntelliSense listesi, Modül 2'de tanımlanan değişkenleri gösterir.

VBA Dim İfadesi ile Const İfadesi Arasındaki Fark

Değişkenleri bildirir ve onlara DIM ifadesini kullanarak değerler atarız. Dim ve Const anahtar sözcükleri arasındaki farkı anlayalım. Aşağıda DIM ve Const arasındaki bazı temel farklar verilmiştir.

Fark 1 – Tanımlama Yolu

Temel fark, bu iki yöntemi kullanarak değişkenleri tanımlama şeklimizdedir. Örneğin, aşağıdaki koda bakın.

VBA Dim İfadesi ile Const İfadesi Arasındaki Fark

VBA Const değişken bildiriminde, bir değişkeni tanımlamak için Const anahtar sözcüğünü kullandık. Aynı satırda, bildirimden hemen sonra değişkene değeri atadık.

Ancak DIM ifadesinde değişkenleri tanımladık ve onlara yalnızca veri türünü atadık. Bir değer atamak için bunu bir sonraki satırda yapabiliriz ve aynı satırda yapmamız gerekmez.

Fark 2 – Değerleri Yeniden Atama

Bu iki değişken tanımlama yöntemi arasındaki temel farklardan biridir. Modülde DIM ifadesini kullanarak değerleri istediğimiz zaman yeniden atayabiliriz. Ancak bu, VBA Const yönteminden farklıdır. Değişkene bir değer atandıktan sonra, sonraki adımlarda başka bir değeri yeniden atayamayız.

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA Const dizileri desteklenmiyor.
  • VBA Const değişken adı, DIM ifadesinin değişken bildirim kuralıyla aynı kuralı izlemelidir.
  • Değeri aynı satırda VBA Const'a atamalıyız. Sonraki adımlarda const değişkenine değer atayamayız.
  • Tanımlanan VBA Const değişkenine tekrar değer atamaya çalıştığımızda derleme hatası verecektir.

VBA Dim İfadesi ile Const İfadesi Arasındaki Fark

VBA'da bir değişkeni tanımlamanın yolları Const ve Dim'dir. Ancak bu ikisi arasında bazı farklar vardır.

Excel VBA Const - SSS 1

2. Makro yerine VBA Const neden kullanılmalı?

VBA Const bir makronun içinde veya dışında kullanılabilir. Makronun yerine geçemez.

3. VBA Const Neden Çalışmıyor?

VBA Const, prosedürde başlangıçta tanımladığımız bir değeri yeniden atamaya çalıştığımızda derleme hatası verecektir.

4. VBA'da Const hangi veri türüdür?

VBA Const'a herhangi bir veri türü atayabiliriz. Aşağıda VBA Const'a atanmış bazı yaygın veri türleri verilmiştir.
 String
 Boolean
 Long
 Int
 Byte


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...