Değişkenleri Excel alt yordamlar, Visual Basic for Applications nasıl kullanılacağı

Makale çevirileri Makale çevirileri
Makale numarası: 843144 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

GİRİŞ

Bu makalede, değişkenler Microsoft Excel alt yordamları Microsoft Visual Basic for Applications nasıl kullanılacağı açıklanır.

Daha fazla bilgi

Bir alt yordam içindeki değişkenler

Güçlü programlama dillerinde kullanılabilir veya yordamı daha sonra değiştirilebilir değişken içeriğini bir şey bir değişkende tutmak yeteneği özelliğidir. Bu belge aşağıdaki Visual Basic değişkenlerin kullanımını açıklar:
  • Değişkenlerin nasıl bildirilir.
  • Yordamlar ve using kullanabilirsiniz projeleri.
  • Bir değişkenin yaşam.

Bir makroda bir değişken bildirmek

Bir makroda bir değişken bildirmek için en kolay yolu, Dim deyimi kullanmaktır. Aşağıdaki satırı, iki değişkeni, x ve y tamsayılar bildirir:
Dim x As Integer, y As Integer
X ve y tamsayılar Visual Basic belirten bir tamsayı değişken için yeterli bellek bir kenara bırakmanızı belirtilen (2 bayt her x ve y) ve x veya y depolanan bilgileri -32768 ile 32767 arasında bir tamsayı.

Not Tek bir kullanarak birden fazla değişken bildirip, Dim deyimiyle her değişkenin veri türünü belirtmeniz gerekir.

Aşağıdaki Visual Basic kodu olduğu gibi her değişkenin veri türü belirtmezseniz, yalnızca y değişkeni bir tamsayı değişken olarak ayarlanır. X değişkeninin değişken türü olacaktır:
Dim x, y As Integer
Ek bilgi için "Variant veri türü" bölümüne bakın.

Bir değişkeni sınaması gerçekleştirmek için şu adımları izleyin:
  1. Kaydedin ve açık olan tüm çalışma kitaplarını kapatın ve sonra bir newworkbook açın.
  2. Visual Basic Düzenleyicisi'ni (ALT + F11 tuşlarına basın) başlatın.
  3. Ekle menüsündenmodülü' nü tıklatın.
  4. Aşağıdaki kodu yazın:
    Sub Variable_Test()
    Dim x As Integer, y As Integer
    x = 10
    y = 100
    MsgBox "the value of x is " & x & _
    Chr(13) & "the value of y is " & y
    End Sub
  5. Variable_Test makrosunu çal??t?r?n. Aşağıdaki iletiyi alırsınız:
    10 x değeridir
    y değeri 100'dür
  6. Tamam' ı tıklatın.
  7. Variable_Test makro içinde aşağıdaki satırı değiştirin:
    x = 10
    

    için:
    x = "error"
    
  8. Variable_Test makrosunu çal??t?r?n.
"Hata" bir tamsayı değildir ve bu dize değeri x tamsayı değişkenine atamak çalıştığınız için bir çalışma zamanı hatası alırsınız.

Veri türü özeti

Genel değişken veri türleri aşağıdaki tabloda listelenmektedir:

Bu tabloyu kapaBu tabloyu aç
Veri türüDepolama boyutuİzin verilen aralık
Boole değeri 2 bayt Doğru veya yanlış
Tamsayı 2 bayt -32.768 ile 32,767
Uzun 4 bayt -2.147.483.648 ile 2.147.483.647 arasındaki
Çift 8 bayt -1, 79769313486232E308 için - 4-324 negatif değerler; 4-Pozitif değerler için 1, 79769313486232E308 324
Para birimi 8 bayt -için 922,337,203,685,477.5808 922,337,203,685,477.5807
Tarih 8 bayt 1 Ocak 100 ile 31 Aralık 9999'a kadar
Dize 10 bayt + dize uzunluğu

Variant veri türü

Bir değişken bildirmek veya bir değişken hiç bildirmezseniz, bir veri türü belirtmezseniz, Visual Basic otomatik olarak bu değişkeni değişken veri türünü belirtir. Bu veri türü olarak bildirilen değişkenler avantajları şunlardır:
  • Değişkenleri içerebilir dize, tarih, saat, Boolean, ornumeric değerleri.
  • Değişkenlerin değerlerini dönüştürebilirsiniz, bunlar containautomatically.
Değişken değişkenler en az 16 bayt bellek gerektiren dezavantajıdır. 16 bayt bellek büyük yordamları ya da karmaşık modülleri önemli olabilir.

Variable_Test makrosunda nas?l çal??t???n? görmek için şu adımları izleyin:
  1. Variable_Test makro kodu değiştirin:
    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
    
  2. Variable_Test makrosunu çal??t?r?n.
Hiçbir şey varyant de?i?kenlere atamak için bir hata alırsınız değil x ve y.

Not Makro değişkenler olarak çalışmaya devam eder ve ayrıca aşağıdaki satırı bırakabilirsiniz x ve y VARIANT veri türü olarak kabul edilir:
Dim x, y

Bir değişkenin kapsamı

Bir değişken bildirdiğinizde olabilir veya diğer makrolar aynı modülü, diğer modüller veya başka bir proje tarafından görülebilir değildir. Bu kullanılabilirlik modüllerinde bir değişkenin kapsamı olarak adlandırılır. Yordam düzeyi, özel modül düzeyi, üç kapsam tipi ve ortak modül düzeyi. Kapsamı nasıl ve nerede, değişken veya değişken bildirin üzerinde bağlıdır.

Yordam düzeyi kapsamı

Yordam düzeyi kapsamlı bir değişken olduğu bildirilen yordamı dışında görülmez. Yordam düzeyi kapsamına sahip bir değişkenin değerini ayarlarsanız, bu değişkenin içeriğini diğer makrolar tarafından görünmeyecek.

Yordam düzeyi kapsamlı bir değişken olduğu bildirilen yordamı dışında görülmez doğrulamak için şu adımları izleyin:
  1. Projenize yeni bir modül ekleyin.
  2. Aşağıdaki makroları her ikisi de bu modüle yazın:
    Sub Macro1()
    Dim x As Integer
    x = 10
    MsgBox "x, as seen by Macro1 is " & x
    'the next line runs Macro2
    Macro2
    End Sub
    Sub Macro2()
    MsgBox "x, as seen by Macro2 is " & x
    End Sub
    
  3. Makro1çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    Makro1 tarafından görülen x 10'dur
  4. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    Macro2is tarafından görülen x
  5. Tamam' ı tıklatın.
X değişkeninin Makro1için yerel olduğundan Macro2 x değişken için bir değer görüntülenmez.

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

(Üstündeki bir modül, tüm alt yordamlar) modülü tanımlamalar bölümünde değişkenlerini tanımlamak ve ortak deyimi, Dim deyimi veya Özel deyimini kullanarak, değişken kapsamını ayarlayın. Ortak ifadesi, değişkenin koyarsanız, değişken projedeki tüm modüllerdeki tüm makrolar için kullanılabilir. Dim deyimi veya Özel deyimi değişkeniniz koyarsanız, değişken yalnızca burada bildirildi?i modülündeki makrolar kullanılabilir.

Ortak deyim ve Dim deyimi arasındaki farkı görmek için şu adımları izleyin:
  1. Kaydedin ve açık olan tüm çalışma kitaplarını kapatın ve bir newworkbook açın.
  2. Visual Basic Düzenleyicisi'ni başlatın.
  3. Bir modül projenize ekleyin.
  4. Bu modüle aşağıdaki kodu yazın:
    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. Başka bir modül projenize ekleyin.
  6. Bu modüle aşağıdaki kodu yazın:
    Sub Macro2()
    x = x * 3
    MsgBox x
    End Sub
    
  7. İlk modülünde Macro_1a makrosunu çal??t?r?n.

    X değişkeninin Main'in "Ortak x As Integer" ile tüm üç makro projesinin x değerini erişebilirsiniz. İlk ileti kutusu 10 değerini görüntüler. (X 2 Macro_1b' de çarpılır çünkü) ikinci messagebox 20 değeri görüntüler. 60 Değeri üçüncü bir ileti kutusu görüntüler (çünkü değerini x 20 Macro_1b ' de değiştirildiği ve sonra onu 3'te Macro2çarpılmasıyla).
  8. İlk modülünden beyanname satırı değiştirin:
    Public x As Integer

    için:
    Dim x As Integer
  9. Macro_1a makrosunu çal??t?r?n.

    "Dim x AsInteger", yalnızca ilk modülündeki makrolar x. Sothe değerini ilk erişimi gibi ile x değişkeninin değeri 10 ileti kutusu görüntülenir, değer 20, ikinci bir ileti kutusu gösterir (x 2 Macro_1b' de çarpılır çünkü) ve ( Macro2 x değerini ve makro 2tarafından kullanılan zerois başlatılmamış değerini görmek için) 0 değeri üçüncü bir ileti kutusu görüntüler bildirilir.
  10. İlk modülünden beyanname satırı değiştirin:
    Dim x As Integer

    için:
    Private x As Integer
  11. Macro_1a makrosunu çal??t?r?n.
Dim deyimi kullanmakta olduğunuz Özel kapsam deyimini kullanarak aynı ileti kutusu görüntülenir. X değişkeninin burada bildirilen modülü için özel aynı kapsam vardır.

Not Burada bildirilen modülü sınırlı olacak, değişken kapsamını istiyorsanız, Özel deyimini Dim deyimi kullanın. Her ikisi de aynı etkiyi elde etmek, ancak Özel ifadesini kullanarak kodu okurken kapsamı nettir.

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

Zaman içinde bir değişken değerini korur, yaşam süresi bilinir. Bir değişkenin değerini ömrü süresince değişebilir, ancak bir değer korur. Ayrıca, bir değişkenin kapsamı kaybettiğinde, artık bir değere sahiptir.

Bir değişkenin değerini başlatılamıyor

Bir makroyu çalıştırdığınızda, tüm değişkenleri olarak başlatılır. Sayısal bir değişken sıfır olarak başlatılır, değişken uzunlukta dize sıfır uzunlukta dize olarak başlatılır (""), ve sabit uzunlukta bir dize ASCII kodu 0 ile doldurulur. Değişken değişkenler Empty olarak başlatılır. Boş bir değişken sayısal bir içerik ve sıfır uzunluklu dize sıfır gösterilir ("") bir dize bağlamında.

Yordam düzeyi değişkeni

Dim deyimi kullanarak bir makro içinde bildirilen bir değişken varsa, makronun çalıştığı sürece değişkenin değerini korur. Bu makroyu başka bir makro çağırırsa, değişken değeri korunur (diğer makrolar kullanılamaz olsa) bu diğer makrolar da çalışan sürece.

Yordam düzeyi değişkenleri göstermek için çalışma, aşağıdaki adımları izleyin:
  1. Projenize yeni bir modül ekleyin.
  2. Aşağıdaki makroları her ikisi de bu modüle yazın:
    Sub Macro1()
    'set x as a procedure level variable
    Dim x As Integer
       MsgBox "the initialized value of x is " & x
    x = 10
    MsgBox "x is " & x
    'the next line runs Macro2
    Macro2
    MsgBox "x is still " & x
    End Sub
    Sub Macro2()
    MsgBox "x, as seen by Macro2 is " & x
    End Sub
    
  3. Makro1çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    başlatılan x 0 değeridir
  4. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    x 10'dur
  5. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    Macro2 tarafından görülen x
  6. Tamam' ı tıklatın.

    Variablex Makro1için yerel olduğundan Macro2 x değişken için bir değer görüntülenmez. Aşağıdaki iletiyi alırsınız:
    10 x isstill
  7. Tamam' ı tıklatın.
  8. Makro1çalıştırın.
X değişkeninin değerini Makro1 adım 6'durmuş olarak, kayıp olduğu için 3 ile 6 arasındaki adımları açıklanmıştır aynı iletileri alırsınız. Bu nedenle, Makro1 adım 7'de yeniden çalıştırdığınızda, ilk iletiyi sıfır olarak (başlatıldı değeri) x değerini gösterir.

Static anahtar sözcüğü

Yordam düzeyi değişkeni Static anahtar sözcüğünü kullanarak bildirilirse, projenizin sıfırlanana kadar değişken değerini korur. Bu nedenle, yordam çağrısı bir sonraki başlatılışında bir statik değişkeni varsa, bir statik değişkeni için son değeri başlatıldı.

Static anahtar sözcüğü nasıl çalıştığını görmek için şu adımları izleyin:
  1. Makro1 için kodu değiştirin:
    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çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    başlatılan x 0 değeridir
  3. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    x 10'dur
  4. Tamam' ı tıklatın.
  5. Makro1çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    başlatılan x 10 değeridir
  6. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    x 20'dir
  7. Tamam' ı tıklatın.
İletilerde görünen ikinci kez x değişkeninin statik değişken olarak bildirilmiş ve Makro1 ilk kez çalıştırdıktan sonra değişken değerini korur çünkü farklı değerlerdir.

Not Modül düzeyi değişkeni varsa, statik bir yordam düzeyi değişkeni gibi yaşam aynıdır.

Modül düzeyi değişkeni yaşam doğrulamak için şu adımları izleyin:
  1. Şu şekilde Makro1 içeren modülün kodu değiştirin:
    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çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    başlatılan x 0 değeridir
  3. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    x 10'dur
  4. Tamam' ı tıklatın.
  5. Makro1çalıştırın.

    Aşağıdaki iletiyi alırsınız:
    başlatılan x 10 değeridir
  6. Tamam' ı tıklatın.

    Aşağıdaki iletiyi alırsınız:
    x 20'dir
  7. Tamam' ı tıklatın.
İletilerde görünen ikinci kez x değişkeninin statik değişken olarak bildirilmiş ve Makro1 ilk kez çalıştırdıktan sonra değerini korur çünkü farklı değerlerdir.

Bir proje değişkenleri sıfırlamak için Sıfırla

Modül düzeyi değişkeni için statik bir değişken veya değer sıfırlamak istiyorsanız, Sıfırla düğmesi Standart araç çubuğunda tıklatın veya Çalıştır menüsünde Sıfırla ' yı tıklatın.

Bunu yapmak için Makro1 proje ve Makro1yeniden çalıştırın, x değişkeninin değerini sıfır olarak başlatılır ve ilk iletisini alırsınız:
başlatılan x 0 değeridir
Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
843145 Excel alt yordamlar, Visual Basic for Applications (dizi) açıklaması
başa dön

Özellikler

Makale numarası: 843144 - Last Review: 10 Ekim 2013 Perşembe - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Anahtar Kelimeler: 
kbvba kbprogramming kbinfo kbmt KB843144 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 843144

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com