Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Tarayıcınız desteklenmiyor

Siteyi kullanmak için tarayıcınızı güncelleştirmeniz gerekir.

Internet Explorer'ın en son sürümüne güncelleştirin

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

Ö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
GİRİŞ
Bu makalede, değişkenler Microsoft Excel alt yordamları Microsoft Visual Basic for Applications nasıl kullanılacağı açıklanır.

başa dön
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.
başa dön

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 Integerx = 10y = 100MsgBox "the value of x is " & x & _Chr(13) & "the value of y is " & yEnd 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.

başa dön

Veri türü özeti

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

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

başa dön

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, yx = "string"y = 1.23MsgBox "the value of x is " & x & _Chr(13) & "the value of y is " & yEnd 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

başa dön

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.

başa dön

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 Integerx = 10MsgBox "x, as seen by Macro1 is " & x'the next line runs Macro2Macro2End SubSub Macro2()MsgBox "x, as seen by Macro2 is " & xEnd 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.

başa dön

Ö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 IntegerSub Macro_1a()x = 10MsgBox xMacro_1bEnd SubSub Macro_1b()x = x * 2MsgBox xMacro2End Sub
  5. Başka bir modül projenize ekleyin.
  6. Bu modüle aşağıdaki kodu yazın:
    Sub Macro2()x = x * 3MsgBox xEnd 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.

başa dön

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.

başa dön

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.

başa dön

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 variableDim x As Integer   MsgBox "the initialized value of x is " & xx = 10MsgBox "x is " & x'the next line runs Macro2Macro2MsgBox "x is still " & xEnd SubSub Macro2()MsgBox "x, as seen by Macro2 is " & xEnd 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.

başa dön

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 variableStatic x As Integer   MsgBox "the initialized value of x is " & xx = x + 10MsgBox "x is " & xEnd 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 variableSub Macro1()   MsgBox "the initialized value of x is " & xx = x + 10MsgBox "x is " & xEnd 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.

başa dön

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ı
alt yordam VBA değişkenler var xl2007 xl2003 xl2000 xl2002 xl

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 843144 - Son İnceleme: 10/10/2013 09:22:00 - Düzeltme: 4.0

  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • kbvba kbprogramming kbinfo kbmt KB843144 KbMttr
Geri bildirim
n.protocol) + "//c.microsoft.com/ms.js'><\/script>");