Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Giriş

Bu makalede, Microsoft Visual Basic for Applications'de Microsoft Excel yordamlarda değişkenlerin kullanımı açıklanmıştır.

Daha Fazla Bilgi

Alt yordamda değişkenler

Programlama dillerinin güçlü bir özelliği, değişkende bir şey depolayama özelliğidir; böylelikle değişkenin içeriği kullanılabilir veya yordamın devamlarında değiştirilebilir. Bu belgede, değişkenlerde değişkenlerin aşağıdaki kullanımı Visual Basic:

  • Değişkenlerin nasıl ifade edildikleri.

  • Değişkeni kullanabileceğiniz yordamlar ve projeler.

  • Bir değişkenin yaşam süresidir.

Makroda değişken bildir

Makroda değişken bildirimini ifade etmek için en basit yol Soluk deyimini kullanmaktır. Aşağıdaki satır, tamsayı olarak iki değişken bildirer:

    Dim x As Integer, y As Integer

x ve y tamsayı olarak belirtilmişse, Visual Basic'e bir tamsayı değişkeni (x ve y için 2 bayt) için yeterli bellek ayarlamasını ve x veya y'de depolanan bilgilerin -32768 ile 32767 arasında bir tamsayı olduğunu söylemektesiniz.

NOT: Tek bir Soluk deyimi kullanarak birden çok değişken bildirersiniz, her değişken için veri türünü belirtmeniz gerekir.

Aşağıdaki kodda olduğu gibi her değişken için veri türünü belirtmezseniz, Visual Basic y değişkeni tamsayı değişkeni olarak ayarlanır. X değişkeni bir değişken türü olur:

    Dim x, y As Integer

Ek bilgi için aşağıdaki Değişken veri türü'ne bakın.
 

Değişken sınaması yapmak için şu adımları izleyin:

  1. Açık çalışma kitaplarını kaydedin ve kapatın, sonra da yeni bir çalışma kitabı açın.

  2. Düzenleyiciyi Visual Basic (ALT+F11 tuşlarına basın).

  3. Ekle menüsünde Modül'etıklayın.

  4. Şu kodu yazın:

    Sub Variable_Test()
        Dim x As Integer, y As Integer
        x = 10
        y = 100
        İletiKazı Kutusu "x değeri " & x & _
        Chr(13) & "y değeri " veya y &.
    End Sub

  5. Makroyu Variable_Test çalıştırın. Şu iletiyi alırsınız:

    the value of x is 10
    the value of y is 100

  6. Tamam’a tıklayın.

  7. Makro Variable_Test şu satırı değiştirir:

    x = 10

  8. to:

    x = "error"

  9. Makroyu Variable_Test çalıştırın.

"Hata" tamsayı değilse ve bu dize değerini x tamsayı değişkenine atamaya çalışıyorsanız, çalıştırma hatası alırsınız.
 

Veri türü özeti

Bunlar, yaygın değişken veri türleridir:

ortak değişken veri türleri

Variant veri türü

Değişken bildirerek veri türü belirtmezseniz veya hiç değişken bildirmezseniz, Visual Basic bu değişkenin değişken veri türünü otomatik olarak belirtir. Aşağıdakiler, bu veri türü olarak bildirilen değişkenlerin avantajlarıdır:

  • Değişkenler dize, tarih, saat, Boole veya sayısal değerler içerebilir.

  • Değişkenler içerenin değerleri otomatik olarak dönüştürebilirsiniz.

Dezavantaj, değişken değişkenlerin en az 16 bayt bellek gerektirmesidir. Büyük yordamlarda veya karmaşık modüllerde 16 bayt bellek önemli olabilir.

Bunun makroda nasıl çalıştığını Variable_Test için şu adımları izleyin:

Makronun kodunu Variable_Test:

Sub Variable_Test()
    Dim x, y
    x = "string"
    y = 1.23
    MsgBox "the value of x is " & x & _
    Chr(13) & "the value of y is " & y
End Sub

Makroyu Variable_Test çalıştırın.

X ve y değişken değişkenlerine herhangi bir şey atayadığınız için hata almayacaksınız.

NOT: Ayrıca aşağıdaki satırı dışarıda bırakabilirsiniz; makro, x ve y değişkenleri Değişken veri türleri olarak kabul edilirken çalışmaya devam eder:

    Dim x, y

Değişkenin kapsamı

Değişken bildiriyorken, aynı modülde, başka modüllerde veya başka projelerde yer alan diğer makrolar tarafından görülebilir veya görülmez. Modüllerde bir değişkenin kullanılabilirliği, kapsam olarak adlandırılır. Bu üç kapsam türü yordam düzeyi, özel modül düzeyi ve genel modül düzeyidir. Kapsam, değişken veya değişkenlerinizi nasıl ve nerede bildirdknize bağlıdır.

Yordam düzeyi kapsamı

Yordam düzeyi kapsamına sahip bir değişken, bildirilen yordamın dışında görülmez. Yordam düzeyi kapsamına sahip bir değişkenin değerini ayarsanız, o değişkenin içeriği diğer makrolar tarafından görülmez.

Yordam düzeyi kapsamına sahip bir değişkenin, bildirilen yordamın dışında görülmek zorunda olmadığını doğrulamak için şu adımları izleyin:

  1. Projenize yeni bir modül ekleme.

  2. Bu modüle aşağıdaki makroların ikisini de yazın:
      Alt Makro1() Dim x As Integer x = 10 MsgBox "x, Makro1 tarafından görülen gibi " & x 'sonraki satır Makro2 Makro2 Alt Makro2() MsgBox "x'i çalıştırır. Bu, Makro2'de " & x End Sub'tur

  3. Makro1'i çalıştırın; şu iletiyi alırsınız:

    x, as seen by Macro1 is 10

  4. Tamam'atıklayın; şu iletiyi alırsınız:

    tamamx, as seen by Macro2 is

  5. Tamam’a tıklayın.

Makro2, x değişkeni için değer görüntülemez çünkü x değişkeni Makro1'de yereldir.

Özel ve ortak modül düzeyi kapsamı

Bir modülün bildirim bölümünde (modülün en üstünde, tüm alt yordamların üstünde) değişkenleri tanımlayabilir ve Genel deyimi, Soluk deyimi veya Özel deyimini kullanarak değişkeninizin kapsamını belirleyebilirsiniz. Değişkeninizin önüne Genel deyimi koyduysanız, değişkeniniz proje kapsamındaki tüm modüllerde bulunan tüm makrolar için kullanılabilir. Değişkeninizin önüne Dim deyimini veya Private deyimini koymanız, değişkeniniz yalnızca bildirilen modülde bulunan makrolar için kullanılabilir.

Genel deyim ile Soluk deyim arasındaki farkı görmek için şu adımları izleyin:

  1. Açık çalışma kitaplarını kaydedin ve kapatın, sonra da yeni bir çalışma kitabı açın.

  2. Düzenleyici'Visual Basic başlatma.

  3. Projenize bir modül ekleme.

  4. Type the following code into this module:
    
    Public x As Integer
    Sub Macro_1a()
        x = 10
        MsgBox x
        Macro_1b
    End Sub
    Sub Macro_1b()
        x = x * 2
        MsgBox x
        Macro2
    End Sub
  5. Projenize başka bir modül ekleme.

  6. Bu modüle aşağıdaki kodu yazın:


    Sub Macro2()     x = x * 3
        İletiKazı Kutusu x
    End Sub

  7. Makroyu Macro_1a modülde çalıştırın.

  8. "Ortak x Tamsayı" olarak bildirilen x değişkeniyle, proje kapsamındaki üç makronun da x değerine erişimi vardır. İlk ileti kutusunda 10 değeri görüntülenir. İkinci ileti kutusunda 20 değeri görüntülenir (çünkü x, iki iletide 2 ile Macro_1b). Üçüncü ileti kutusunda 60 değeri görüntülenir (çünkü iletide x değeri 20 olarak değiştirilmiştir Macro_1b sonra Makro2'de 3 ile çarpılır).

  9. İlk modülde bildirim çizgisini değiştirme :

       Public x As Integer

    to:

       Dim x As Integer

  10. Makroyu Macro_1a çalıştırın.

  11. "Soluk x Tamsayı" olarak bildirilen x değişkeniyle, yalnızca ilk modülde yer alan makroların x değerine erişimi olur. Dolayısıyla, ilk ileti kutusunda 10 değeri görüntülenir, ikinci ileti kutusunda 20 değeri görüntülenir (çünkü x Macro_1b'de 2 ile çarpılır) ve üçüncü ileti kutusunda 0 değeri görüntülenir (Makro2 x'in değerini görmez ve sıfırın ilk değeri Makro 2 tarafından kullanılır).

  12. İlk modülde bildirim çizgisini değiştirme :

      Dim x As Integer

    Hedef:

        Private x As Integer

  13. Makroyu Macro_1a çalıştırın.

  14. Aynı ileti kutuları, Soluk deyimini kullanırken Private deyimi kapsamı kullanılarak görüntülenir. Değişken x, bildirilen modüle özel olarak aynı kapsamda olur.


NOT: Değişkeninizin kapsamının bildirimi yapılan modülle sınırlı sayıda olması için, Soluk deyimi yerine Privatestatement kullanın. Her ikisi de aynı etkiyi elde ediyor, ancak Özel deyimini kullanırsanız kodu okuduğunda kapsam daha net olur.
 

Bir değişkenin yaşam süresi

Değişkenin değerinin korundiği süre, yaşam süresi olarak bilinir. Bir değişkenin değeri, yaşam süresi boyunca değişebilir, ancak değeri korur. Ayrıca, değişken kapsamı kaybettiğide değeri artık yoktur.
 

Değişkenin değerini başlatma

Makroyu çalıştıracak olurken, tüm değişkenler bir değerle başlatılır. Sayısal bir değişken sıfır olarak başlatılır, değişken uzunluk dizesi sıfır uzunlukta dizeyle ("") başlatılır ve sabit uzunlukta dize ASCII kodu 0 ile doldurulur. Değişken değişkenleri Boş olarak başlatılır. Boş değişken, bir sayısal bağlamda sıfırla ve dize bağlamında da sıfır uzunluklu dizeyle ("") temsil edilen bir değişkendir.

Yordam düzeyinde değişkenler

Makroda Soluk deyimi kullanılarak bildirilen bir değişken varsa, değişken, makro çalıştırıldı sürece değerini korur. Bu makro başka makroları ararsa, diğer makrolar da çalışıyor olduğu sürece değişkenin değeri korunur (diğer makrolar için kullanılamaz).

Yordam düzeyinde değişkenlerin nasıl olduğunu göstermek için şu adımları izleyin:

  1. Projenize yeni bir modül ekleme.

  2. Bu modüle aşağıdaki makroların ikisini de

    yazın:Sub Macro1()
        'set x, yordam düzeyi değişkeni olarak
       Dim x As Integer
       İletiKazı Kutusu "x'in başlatılmış değeri " & x
       x = 10
        İletiKazı Kutusu "x is " & x
        'sonraki satır Makro2'i çalıştırır
        Makro2
        İletiKazı Kutusu "x hala " & x
    End Sub
    Alt Makro2()
        msgBox "x, as seen Macro2 is " & x
    End Sub

  3. Makro1'i çalıştırın.

  4. Aşağıdaki iletiyi alırsınız:

        the initialized value of x is 0

  5. Tamam'atıklayın, iletiyi alırsınız:

     x is 10

  6. Tamam'atıklayın; şu iletiyi alırsınız:

    tamamx, as seen by Macro2 is

  7. Tamam'a tıklayın.

  8. Makro2, x değişkeni için değer görüntülemez çünkü x değişkeni Makro1'de yereldir. Şu iletiyi alırsınız:

    x is still 10

  9. Tamam’a tıklayın.

  10. Makro1'i çalıştırın.

Makro1 Adım 6'da çalışmayı durdurduktan hemen sonra değişken x değerinin kaybolur olması nedeniyle, 3 ile 6 arasında açıklanan aynı iletileri alırsınız. Bu nedenle, 7. Adımda Makro1'i yeniden çalıştırsanız, ilk ileti x değerini sıfır (başlatan değer) olarak gösterir.

Statik anahtar sözcük

Yordam düzeyi bir değişken Static anahtar sözcüğü kullanılarak beyan edildiyse, değişken projeniz sıfır olana kadar değerini korur. Bu nedenle, statik bir değişkeniniz varsa, yordamınızı bir sonraki çağırıcıda statik değişken son değeriyle başlatılır.

Static anahtar sözcüğünün nasıl çalıştığını görmek için şu adımları izleyin:

  1. Change the code in Macro1 to:
    
    Sub Macro1()
        'set x as a procedure level variable
        Static x As Integer
           MsgBox "the initialized value of x is " & x
        x = x + 10
        MsgBox "x is " & x
    End Sub
  2. Makro1'i çalıştırın.

  3. Şu iletiyi alırsınız:

    the initialized value of x is 0

  4. Tamam'atıklayın, şu iletiyi alırsınız:

    tamamx is 10

  5. Tamam’a tıklayın.

  6. Makro1'i çalıştırın; şu iletiyi alırsınız:

    the initialized value of x is 10

  7. Tamam'atıklayın; şu iletiyi alırsınız:

    tamamx is 20

  8. Tamam’a tıklayın.

İletilerde görünen değerler ikinci kez farklıdır, çünkü değişken x statik değişken olarak bildirildi ve siz Makro1'i ilk kez çalıştırdikten sonra değişken değerini korur.

NOT:  Modül düzeyinde bir değişken varsa, yaşam süresi bir statik yordam düzeyi değişkeni olmasıyla aynıdır.

Modül düzeyindeki değişkenin yaşam ömrünü doğrulamak için şu adımları izleyin:

  1. Change the code in the module that contains Macro1 to the following:
    
    Dim x As Integer  'create a module-level variable
    Sub Macro1()
       MsgBox "the initialized value of x is " & x
       x = x + 10
       MsgBox "x is " & x
    End Sub
  2. Makro1'i çalıştırın; şu iletiyi alırsınız:

    the initialized value of x is 0

  3. Tamam'a tıklayın; şu iletiyi alırsınız:

    x is 10

  4. Tamam'a tıklayın

  5. Makro1'i çalıştırın; şu iletiyi alırsınız:

    the initialized value of x is 10

  6. Tamam’a tıklayın.

  7. Şu iletiyi alırsınız:

    x is 20

  8. Tamam’a tıklayın.

İletilerde görünen değerler ikinci kez farklıdır, çünkü x değişkeni statik değişken olarak beyan edilen ve siz Makro1'i ilk kez çalıştırdikten sonra değerini korur.
 

Değişkenleri sıfırlamak için projeyi sıfırlama

Statik bir değişkenin veya modül düzeyindeki bir değişkenin değerini sıfırlamak için,
Standart araç çubuğu veya Çalıştır menüsünde Sıfırla'ya tıklayın.

Makro1 projesi için bunu yapar ve makro1'iyeniden çalıştırırsanız, x değişkeninin değeri sıfıra geri başlatılır ve ilk iletiyi alırsınız:

    the initialized value of x is 0

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×