• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

Makale GoSub ve Return

Bu Makale Yararlı Oldu mu?

  • Evet

  • Hayır


Sonuçlar yalnızca oylamadan sonra görülebilir.

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,504
En iyi yanıt
13
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Vers.
Office 365 TR+EN
Bu ifade, herhangi bir şartta, prosedür içerisinde belirtilen etiket satırına gitmesi ve sonrasında
Return ifadesiyle de geri gelerek kaldığı yerden devam etmesi istendiğinde kullanılır.
Birden fazla GoSub ifadesi kullanılabilir ve bu ifadelerle aynı veya farklı etiket satırlarına gidilebilir.
Etiket satırı olarak belirtilen ifade, GoTo deyiminde olduğu gibi metin veya sayısal olabilir.
Metin olursa etiket satırı aşağıdaki kodda olduğu gibi : (iki nokta) ile bitirilmeli, Sayısal olursa : (iki nokta) işaretini kullanmanıza gerek yoktur.
GoSub ile varış noktasına ulaşıldıktan sonra Return ifadesiyle bildirime geri dönecektir.
GoSub ve onun karşılığı olan Return aynı prosedür içinde yer almalıdır.
Bu, başka bir prosedürün içinden bir alt yordamı çağırmak için GoSub'ı kullanamayacağınız anlamına gelir.
Fazla kullanılan bir ifade olmamasına karşın, koşullarınız arttığında prosedür içerisinde istenilen satıra giderek farklı farklı işlemler yaptırabildiğiniz bir ifade olarak kullanılabilir.

Bu ifadeyi net olarak anlayabilmeniz için aşağıda 3 örnek verilmiştir.

Örnek Kullanımlar
PHP:
Sub ExcelTurkey()
    Dim a As Integer
    a = InputBox("Lütfen sayısal bir değer girin")
    If a < 10 Then GoSub devam
        MsgBox a
    Exit Sub
devam:
    a = a + 10
    Return
End Sub

PHP:
Sub ExcelTurkey()
    Dim a As Integer
    a = InputBox("Lütfen sayısal bir değer girin")
    If a < 10 Then GoSub 10
    If a = 10 Then GoSub esit
        MsgBox a
    Exit Sub
10 a = a + 10
    Return
esit:
    a = a - 5
    Return
End Sub
PHP:
Sub ExcelTurkey()
    GoSub ANoktasi
    GoSub BNoktasi
    GoSub 1000
    Exit Sub
ANoktasi:
    MsgBox "Şu an A Noktasındasınız"
    Return
BNoktasi:
    MsgBox "Şu an B Noktasındasınız"
    Return
1000
    MsgBox "Şu an hedefe ulaştınız.."
    Return
End Sub
 

ozkansabanci

Excel VBA Developer
Uzman
Katılım
28 May 2018
Mesajlar
238
En iyi yanıt
7
Puanları
28
Yaş
38
Konum
İstanbul
Web sitesi
analistadam.com
Ad Soyad
Özkan Sabancı
Office Vers.
Microsoft 365 Apps for enterprise TR
GoTo kullanıyordum ama bunu bilmiyordum. Teşekkür ederim paylaşım için.

İyi çalışmalar
 

l3oomerangg

Yeni Üye
Katılım
28 Ağu 2018
Mesajlar
14
En iyi yanıt
0
Puanları
3
Yaş
45
Konum
Sultangazi - İSTANBUL
Ad Soyad
Fatih Yanartaş
Makale için teşekkür ederim. Bugüne kadar GoTo kullandığım hiçbir koddan istediğim verimi alamadım. Hep deneyip, daha sonra başka çözümlere yöneldim. Arada bir denemek lazım. Ama bir yandan da düşününce acaba nerede lazım olacak diyor insan. Sonuçta GoSub ile bir yere gönderip kodu çalıştırıp geri gelmesini sağlayacaksak, neden mevcut satıra direkt o kodları yazıp çalıştırmıyoruz ki diye düşünüyor insan. Ama tabii tecrübe etmek lazım, belki gerekli olacağı bir yer vardır :) Mesela ikinci verilen örnek, If-Then-Else kod yapısının daha da uzatılmış hali gibi duruyor.

Bir de merak ettiğim birşey var. Bu etiketlerden sonra belirtilen kodlar normal kod işleyişinde kale alınmıyor değil mi ?

Yani;

-- Kodlar
If Then GoSub veya GoTo EtiketA
--Kodlar

EtiketA:
Return (GoTo kullanılırsa bu ifade yok)

Böyle bir kod yapısında if koşulu sağlanmasa bile EtiketA dan sonra gelen kodların işleyiş sırasına göre sub yordamın içinde çalışma ihtimali var mıdır ?
 
Üst Alt