Makro Eğitim İçeriği
-
Değişkenleri İletmek (ByRef, ByVal)
Bu bölümde prosedürler arasında değişken iletme yöntemlerine bakacağız. ByRef, bağımsız değişkenleri iletmenin varsayılan yoludur (değişkenin kendisini iletir). Değişkenin değeri geri döndüğünde değişir. ByVal, değişkenin yalnızca bir kopyasını işler ve değişkenin değerini değiştirmez. Değişkenin değerini geri döndürmez. Not: Eğer Call komutu kullanılmazsa parantez kullanmaya gerek yoktur. Sub AnaMakro() Dim deger As Double Dim k As Variant…
-
Prosedürlerin Kapsamı
Bu bölümde Private ve Public prosedürler arasındaki farkı inceleyeceğiz. Prosedürlerin adının başında Public yazılmasına gerek yoktur. Prosedürler varsayılan olarak Public’dir. Eğer prosedür adının başında Private yazıyorsa bu prosedür sadece içinde bulunduğu modülde geçerlidir ve makro listesinde yer almaz, bir butona atanamaz. Call komutu ile diğer prosedüre link verilir fakat bu opsiyoneldir. Örnek: Private Sub Giris()…
-
Hızlı ve Etkili Kodlama
Bu bölümde VBA’nın daha hızlı ve etkili çalışması için yapılması gerekenleri inceleyeceğiz. Aşağıdaki kod ile VBA yavaş çalışır. Bunun sebebi, VBA her hücre için yazılan değeri gösterebilir ve sayfayı silmek istersek bize gereksiz yere onay kutusu gösterir. Sub Yavas() Dim ShYeni As Worksheet Dim hucre As Range Application.StatusBar = “Bekleyin” Set ShYeni = Worksheets.Add For…
-
Hata Ayıklama Kodları
Hata ayıklamada kullanılan başlıca kodlar aşağıdaki gibidir. 1. Bu yöntemde, bir hata oluştuğu anda kodun sonuna atlamak için bir etiket kullanılır. 2. Bu yöntemde belirlenen hatalar atlanılır ve ardından kalan talimatlar için normal hata ayıklama işlemine devam edilir. Genelde probleme çözüm olunmaz, sadece çok spesifik amaçlarda kullanılır. 3. Bu yöntemde hata ayıklama işlemi hata koduna…
-
Hata Ayıklama Yöntemleri
Başlıca hata ayıklama yöntemleri aşağıdadır: View -> Toolbars -> Debug tıklayarak hata ayıklamada kullanılan özellikleri görebiliriz F8 F8 ile kod yürütülürken değişken üzerine fare ile gelindiğinde değişkenin değeri görülebilir Sol taraftaki ok tuşu aşağı ya da yukarı kaydırılarak kod yeniden çalıştırılabilir. Kesme Noktası En sola fare ile tıklayarak ya da ilgili satır üzerinde F9’a basarak…
-
InputBox (Excel)
Bu bölümde Excel’in Giriş Kutusu yöntemini inceleyeceğiz. Excel’in Giriş Kutusu Yöntemini kullanmanın faydaları: Kod Açıklama 0 Formül 1 Sayı 2 Yazı (String) 4 Boolean 8 Aralık (Range) 16 Hata değeri (Error value) 64 Değerler dizisi (Array of values) 1+2 = 3 Sayı + Yazı (string) Örnek: Örnek: Örnek: En yüksek 3 değeri bulmak
-
VBA ve Excel.Worksheet Fonksiyonları
VBA ve Excel, hesaplamaları yapmanıza yardımcı olacak yerleşik işlevlere sahiptir. VBA’nın Excel’e eşdeğer bir işlevi varsa, yalnızca VBA işlevini kullanabilirsiniz. Fonksiyonlar aşağıdaki 3 başlangıç ifadesiyle eklenebilir. Excel (Türkçe) Excel (İngilizce) VBA karşılığı MUTLAK ABS ABS EBOŞSA ISBLANK ISEMPTY UZUNLUK LEN LEN KÜÇÜKHARF LOWER LCASE S_SAYI_ÜRET RAND RND BUGÜN TODAY DATE TÜR TYPE TYPENAME BÜYÜKHARF UPPER…
-
Immediate Penceresi
Immediate Penceresi, Excel dosyalarınız hakkında anında yanıtlar almanızı ve hızlı bir şekilde kod yürütmenizi sağlayan harika bir araçtır. ? işareti kullanarak aradığımız cevapları bulabiliriz Eğer Immediate ekranında ? işaretini kaldırırsak kod uygulanır: Debug.print sonucu Immediate ekranına yazar Immediate ekranını kullanarak tüm gizli sayfaları görünür yapmak For Each sh In Worksheets: sh.Visible = True: Next sh
-
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…
