EXCEL VBA CALL SUB FONKSİYONU

Excel VBA Call Sub Nedir?

VBA'da (Uygulamalar için Visual Basic), "Call Sub", bir VBA modülü içindeki bir alt rutini veya prosedürü çağırmak için kullanılan bir ifadedir. Bir alt rutin, belirli bir görevi veya bir dizi görevi gerçekleştiren bir kod bloğudur. Bir VBA modülü içinde tanımlanabilir ve "Call Sub" ifadesi kullanılarak veya basitçe alt rutin adının ardından parantez kullanılarak kodun diğer bölümlerinden çağrılabilir.

Aşağıdaki örneği ele alalım.

VBA Alt Çağrısı - Giriş

Burada, bir metni yazdıran ve çıktıyı yazdırmak için CallSub() fonksiyonundan çağıran bir alt rutin yazıyoruz.

VBA Alt Çağrısı - Giriş Çıktısı

Not: VBA'nın daha yeni sürümlerinde, VBA 6'dan başlayarak (Office 2000 ve sonraki sürümlerde kullanılır), "Call" anahtar sözcüğü isteğe bağlıdır. Bu nedenle, bunu atlayabilir ve alt yordamı doğrudan çağırabilirsiniz.

Önemli Noktalar

  • Call Sub , bir VBA modülü içinden bir alt prosedürü çağırmak için kullanılır.
  • Başka bir prosedürden bir Alt prosedürü çağırmak için, prosedürün adını yazın ve gerekli tüm argümanlar için değerleri ekleyin. Call ifadesi gerekli değildir, ancak kullanırsanız, tüm argümanları parantez içine almalısınız.
  • Call Sub , bir fonksiyonun aksine bir değer döndürmez.
  • Call Sub'ın bir Return ifadesi yoktur. Bir Sub prosedüründe kullanılan bir ifade, iki nokta üst üste ve eşittir sembolüyle adlandırılmış argümanlar kullanarak çağrılan prosedüre değerler geçirir.

Excel VBA'da Alt Rutin Nasıl Çağrılır?

Excel VBA'da VBA Çağrı Alt Rutinini uygulamak için aşağıda gösterildiği gibi şu adımları gerçekleştiriyoruz:

  1. Araç çubuğundaki “Geliştirici” bölümüne gidin ve “Visual Basic” seçeneğine tıklayın. Şimdi, VBA Editörü fonksiyonlar ve Alt prosedürler eklemek için açılır. Ardından, yeni bir modül veya boş sayfa oluşturmak için “Ekle” ve “Modül” düğmelerine tıklayın.

    Geliştirici - Visual Basic

    Ekle - Modül

  2. Verilen bir değişken üzerinde 1 ile toplama işlemini gerçekleştirmek için bir alt prosedür başlatın.

    VBA Alt Çağrısı - Adım 2

  3. Bir Tamsayı giriş değişkeni kabul edin.


    VBA Alt Çağrısı - Adım 3

  4. Tam sayı değişkenine bir ekleyin ve yazdırın.


    VBA Alt Çağrısı - Adım 4

  5. VBA Çağrı Alt işlemini gerçekleştirmek için başka bir alt rutin başlatın.


    VBA Alt Çağrısı - Adım 5

  6. VBA Çağrı Alt işlemini gerçekleştirin.


    VBA Alt Çağrısı - Adım 6

    Kod:
    Sub AddOne()
    num = 10
    num = num + 1
    Debug.Print num


    End Sub
    Sub CallS()
    AddOne
    End Sub

  7. VBA araç çubuğundaki F5 veya Çalıştır düğmelerine basarak sayıyı yazdırın.


    VBA Alt Çağrısı - Adım 7

    num'ı 10 olarak bildirdiğimizden ve fonksiyonda tanımlandığı gibi buna 1 eklediğimizden 11 yazdırır. Dolayısıyla çıktı 11 olarak gösterilir.

Örnekler

VBA Alt Çağrı prosedürünün uygulanmasına ilişkin birkaç örneğe bakalım.

Örnek 1 – Başka bir modülden VBA Çağrısı Alt

Başka bir sayfadan üç sayı ekleyerek bir VBA Çağrı Alt işlemini uygulamamız gereken bir örneği ele alalım.

Adım 1: Araç çubuğundaki “Geliştirici” sekmesinde , “Visual Basic” seçeneğine tıklayın ve yeni bir modül açın. Üç sayıyı toplayan ve çıktıyı yazdıran bir alt prosedür tanımlayın.

VBA Alt Çağrısı - Örnek 1 - Adım 1

Adım 2: Üç sayının toplam değerini tutacak bir tam sayı tanımlayın.

VBA Alt Çağrısı - Örnek 1 - Adım 2

Adım 3: Üç değişkeni de toplayın ve toplamı önceki adımlarda bildirilen sonuç değişkenine atayın.

VBA Alt Çağrısı - Örnek 1 - Adım 3

Adım 4: Sonuç değişkenini yazdırın.

VBA Alt Çağrısı - Örnek 1 - Adım 4

Adım 5: Yeni bir modül veya boş bir sayfa oluşturmak için “Ekle” ve “Modül” düğmelerine tıklayın.

VBA Alt Çağrısı - Örnek 1 - Adım 5.jpg

Adım 6: Değişkenle VBA Çağrısı Alt işlemini gerçekleştiren yeni modülde yeni bir alt rutin oluşturun.

VBA Alt Çağrısı - Örnek 1 - Adım 6

Adım 7: Toplanacak üç tam sayı değişkeni bildirin.

VBA Alt Çağrısı - Örnek 1 - Adım 7

Adım 8: Kullanıcıdan sayıları alın.

VBA Alt Çağrısı - Örnek 1 - Adım 8

Adım 9: Şimdi, alt rutinle birlikte Modül adını çağırarak başka bir sayfadan Alt Çağrı işlemini gerçekleştirin.

VBA Alt Çağrısı - Örnek 1 - Adım 9

Parametrelerle VBA Call Sub gerçekleştirir. Burada, bir modülden diğer herhangi bir modüle alt rutinleri çağırabiliriz.

Kod:

Sub SumOfThreeNumbers(ByRef n1 As Integer, ByRef n2 As Integer, ByRef n3 As Integer)
Dim res As Integer
res = n1 + n2 + n3
Debug.Print “The sum is: ” & res
End Sub

Başka bir modülde:

Sub GetThreeNumbers()
Dim n1 As Integer
Dim n2 As Integer
Dim n3 As Integer
n1 = InputBox(“Bir sayı girin”)
n2 = InputBox(“Bir sayı girin”)
n3 = InputBox(“Bir sayı girin”)
Module1.SumOfThreeNumbers n1, n2, n3
End Sub

Adım 10: İkinci modüldeki VBA kodunu çalıştırın . Çıktı gösterildiği gibi yazdırılır:

VBA Alt Çağrısı - Örnek 1 - Adım 10 - 22.jpg
VBA Alt Çağrısı - Örnek 1 - Adım 10 - 44
VBA Alt Çağrısı - Örnek 1 - Adım 10 - 66

Toplam, gösterildiği gibi Hemen sekmesinde yazdırılacaktır.

VBA Alt Çağrısı - Örnek 1 - Adım 10 - Çıktı

Örnek 2 – Birden fazla argümana sahip VBA Çağrı Alt

Birden fazla argümanla VBA Call Sub'a ihtiyacınız olan bir örneği düşünün. Bir alt yordamda birden fazla argüman olabilir. Üç girdiyle AND Gate işlevini uygulayan alt yordamlar oluşturmalısınız.

Adım 1: Yeni bir modülde, Boole VE Kapısını taklit eden bir alt prosedür başlatın.

VBA Alt Çağrısı - Örnek 2 - Adım 1

Adım 2: Sonuç değişkenini Boolean olarak tanımlayın.

VBA Alt Çağrısı - Örnek 2 - Adım 2

Adım 3: Tüm üç değişken değerinin “Doğru” olup olmadığını kontrol etmek için bir If-Else koşulu başlatın.

VBA Alt Çağrısı - Örnek 2 - Adım 3

Üçü de "True" ise, sonuç True olarak döndürülür. Değilse, sonuç değeri "False" olarak döndürülür.

Adım 4: Sonucu yazdırın.

Örnek 2 - Adım 4

Adım 5: Kullanıcıdan gelen girdi olarak Boolean giriş argümanlarını kabul eden ve parametrelerle VBA Çağrı Alt işlemini gerçekleştiren bir alt rutin tanımlayın.

Örnek 2 - Adım 5

Adım 6: Üç değişkeni Boolean veri türü olarak tanımlayın.

Örnek 2 - Adım 6

Adım 7: Üç değişkenin de girdisini kabul edin.

Örnek 2 - Adım 7

Adım 8: And Gate alt rutini için argümanlarla VBA Alt Çağrısı.

Örnek 2 - Adım 8

Kod:

Sub AndGate(x As Boolean, y As Boolean, z As Boolean)
Dim res As Boolean
If (x = True And y = True And z = True) Then
res = True
Else: res = False
End If
Debug.Print “The result is: ” & res
End Sub

Sub InputsForGate()
Dim x As Boolean
Dim y As Boolean
Dim z As Boolean
x = InputBox(“True or False”)
y = InputBox(“True or False”)
z = InputBox(“True or False”)
AndGate x, y, z
End Sub

Adım 9: Yukarıdaki kodu çalıştırın.

VBA Alt Çağrısı - Örnek 2 - Adım 9
VBA Alt Çağrısı - Örnek 2 - Adım 9
VBA Alt Çağrısı - Örnek 2 - Adım 9

Bu, hemen açılan sekmede "True" ifadesinin yazdırılmasıyla sonuçlanacaktır.

VBA Alt Çağrısı - Örnek 2 - Çıktı

Örnek 3

Değişkenlerle VBA Alt Çağrısı kullanarak dize birleştirmesi yapmanız gereken bir örneği ele alalım . Burada iki dize değeri kabul ediyoruz ve her iki dize değerini de tek bir birleştirilmiş dizeye birleştiriyoruz.

Adım 1: İki dizeyi birleştirmek için bir alt prosedür başlatın.

Örnek 3 - Adım 1

Adım 2: Birleştirilmiş dize değerlerinin değerini tutacak bir değişkeni, sonuç olarak, bir dize olarak bildirin.

Örnek 3 - Adım 2

Adım 3: Birleştirilmiş dizeyi yazdırın.

Örnek 3 - Adım 3

Adım 4: Dize birleştirme alt yordamını çağıracak alt yordamı bildirin.

Örnek 3 - Adım 4

Adım 5: İki dize bildirin ve değerlerini başlatın.

Örnek 3 - Adım 5

Adım 6: Birleştirme alt yordamını argümanla VBA alt çağrısı.

Örnek 3 - Adım 6.jpg

Kod:

Sub ConcatenateStrings(s1 As String, s2 As String)
Dim result As String
result = s1 & s2
Debug.Print “The concatenated strings are: ” & result
End Sub

Sub CallString()
Dim string1 As String
Dim string2 As String
string1 = “Hello”
string2 = “World!”
ConcatenateStrings string1, string2
End Sub

Adım 7: Çıktı aşağıdaki gibidir:

VBA Alt Çağrısı - Örnek 3 - Adım 7

Dikkat Edilmesi Gereken Önemli Noktalar

  • Gerektiğinde alt rutinlere argümanlar geçirin. Argümanlar, alt rutinlere değerler veya nesneler geçirmenize olanak tanır ve bunların belirli verilere dayalı görevleri gerçekleştirmesini sağlar.
  • Argüman değerlerinin veya değişkenlerin çağrılan alt rutinin beklenen parametreleriyle eşleştiğinden emin olun.
  • "Call" anahtar sözcüğünü gereksiz yere kullanmayın. VBA'nın daha yeni sürümlerinde, VBA 6'dan başlayarak, "Call" anahtar sözcüğü isteğe bağlıdır ve bir alt rutini doğrudan onsuz çağırabilirsiniz.
  • Fonksiyonlar kullanılarak daha iyi gerçekleştirilebilen görevler için alt rutinleri kullanmayın. Fonksiyonlar değerler döndürebilir ve bu da sonucu doğrudan ifadelerde kullanmanıza olanak tanır.

Yorum Gönder

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