Koleksiyonlar Arasında Döngü Oluşturmak

  • GoTo ifadesi

    Program Akışını Değiştirmek için GoTo ifadesi kullanılır. Bunu esas olarak hata yönetimi için kullanın aksi takdirde kodunuz çok kafa karıştırıcı hale gelebilir. Örnek: Sub Basit_GoTo() Range(“D3”).Value = “” If IsError(Range(“B3”)) Then GoTo Cikis Range(“C3”).Value = Range(“B3”).Value Exit Sub Cikis: Range(“D3”).Value = “hücrede hata var” Range(“C3”).Value = “” End Sub


  • Select Case

    Select Case, If…Then koşul sorgulamasına iyi bir alternatif uygulamadır. Koda daha iyi bir genel bakış sağlanır Daha kolay kod bakımı yapılır Daha hızlı kod yürütülür. Sorgulama, DOĞRU’ya ulaştığı anda kod uygulanır ve VBA Select Case yapışından çıkar. Dolayısıyla olası durumları kodun en üstüne yerleştirmek gerekir. Örnek: Sub makro() Select Case Range(“B3”).Value Case 3, 5, 7…


  • IF…Then

    Kodun hangi yönde ilerleyeceğini belirlemenizi sağlar VE, YA DA koşul sorgulamalarını kullanabilirsiniz. VE (And): tüm koşullar doğru olması gerekir YA DA (Or): koşullardan herhangi birinin doğru olması yeterlidir. Örnek: ‘Eğer B3 hücresi boş değişse If Range(“B3”).Value <> “” Then Range(“C3”).Value = Range(“B3”).Value Not: Eğer kod tek bir satırdan oluuyorsa End If kullanmaya gerek yoktur. Örnek:…


  • For Each

    VBA, benzer nesnelerden oluşan bir koleksiyonda döngü yapmak için kolay bir yöntem sağlar. Örneğin: Bir Çalışma Kitabındaki tüm Çalışma Sayfaları için kod yürütme Bir Aralık içindeki tüm Hücreler için kod yürütme Çalışma Sayfası Yorumları koleksiyonundaki her yorum için kod yürütme Örnek: Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets     Sh.Protect “test” Next Sh…


  • With…End With

    Nesne ve özellikleri tekrar tekrar kullanmaktansa With…End With yapısı içinde kullanmak çeşitli avantajlar sağlar. With…End With yapısının faydaları: 1. Daha hızlı kod yazılır 2. Daha kolay kod bakımı yapılır 3. Kodlar daha hızlı çalışır Öncesi: Set aralik = Range(“A4”, “A” & Cells(Rows.Count, 1).End(xlUp).Row) aralik.Font.Name = “Arial” aralik.Font.Size = 14 aralik.Font.Bold = True Sonrası: Set aralik…