EXCEL MAKRO ÖRNEKLERİ

OfisData6 dk okuma
Excel yeşil logosu yanında kod bloklarını simgeleyen sade görsel

Makro öğrenmenin en kısa yolu, çalışan küçük örnekleri okuyup kurcalamaktır. Bu sayfada iki gerçek makro var: biri tablo başlığını tek tuşla kurumsal biçime sokar, diğeri kaç satır olursa olsun listenin sonunu bulup toplam ekler. İkisi de indirilebilir .xlsm dosyasında çalışır hâlde; kodları VBA editöründe satır satır inceleyeceğiz.

Çalışma dosyasını indir (.xlsm) — 2 çalışan makro: BasligiBicimlendir + SonSatiraToplamEkle

Dosyayı açınca güvenlik şeridinde "İçeriği Etkinleştir" deyin; Alt+F8 ile iki makroyu da çalıştırabilirsiniz.

1. İki Makronun Kodu

VBA editöründe BasligiBicimlendir ve SonSatiraToplamEkle makrolarının Sub blokları alt alta

Bir modülde birden çok makro alt alta yaşayabilir — her biri kendi Sub...End Sub bloğunda. Alt+F8 listesinde ikisi ayrı ayrı görünür ve bağımsız çalıştırılır:

Excel Makro penceresinde BasligiBicimlendir ve SonSatiraToplamEkle makrolarının listelendiği ekran

2. Örnek 1: Başlığı Biçimlendir

BasligiBicimlendir üç satırla 1. satırı kurumsal başlığa çevirir: kalın yazı, lacivert dolgu (RGB(31, 78, 121)), beyaz yazı. Her yeni tabloda Giriş sekmesinde üç ayrı tıklama yerine tek makro — biçim standardınız da hiç şaşmaz. Rows(1) ifadesi "1. satırın tamamı" demektir; 2. satırı da kapsamak isterseniz Rows("1:2") yazılır.

3. Örnek 2: Son Satıra Toplam Ekle

SonSatiraToplamEkle daha akıllıca bir iş yapar — listenin kaç satır olduğunu kendisi bulur:

  • son = Cells(Rows.Count, 3).End(xlUp).Row — C sütununda en alttan yukarı çıkıp son dolu satırı bulur. Bu kalıp, VBA'nın en çok kullanılan tek satırıdır.
  • Cells(son + 1, 3).Value = Application.Sum(...) — bulduğu satırın bir altına, 2. satırdan son satıra kadarki aralığın toplamını yazar.

Listeye 3 satır da ekleseniz 300 satır da, makro toplamı hep doğru yere koyar. Sabit adres (C5) yerine son satırı dinamik bulmak, makroyu her boyuttaki veriyle çalışır kılar — örnek makro ile gerçek araç arasındaki fark budur.

4. Örnekleri Kendinize Uyarlama

İstediğiniz değişiklikDokunacağınız yer
Başka renkRGB(31, 78, 121) değerlerini değiştirin (0-255 arası kırmızı, yeşil, mavi)
Başka sütunun toplamıCells(Rows.Count, 3) içindeki 3'ü sütun numarasıyla değiştirin (D için 4)
Toplam yerine ortalamaApplication.Sum yerine Application.Average
İki işi tek tuştaYeni bir Sub açıp içine BasligiBicimlendir ve SonSatiraToplamEkle satırlarını alt alta yazın — makrolar birbirini çağırabilir

Değişiklik yapıp bozarsanız panik yok: dosyayı yeniden indirirsiniz. Kodu Adımla (Alt+F8 > Adımla) ile satır satır izlemek, her satırın ekranda ne yaptığını gösterir — VBA öğrenmenin en hızlandırıcı alışkanlığı budur.

5. Üçüncü Örnek: PDF Basan Makro

İki makroyu kavradıysanız üçüncüsünü kendiniz yazabilirsiniz — aktif sayfayı tek tuşla PDF'e basan klasik:

Sub PdfKaydet()
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ThisWorkbook.Path & "Rapor.pdf"
End Sub

İki satırın işi: ExportAsFixedFormat sayfayı PDF'e çevirir, ThisWorkbook.Path dosyanın kendi klasörünü hedefler — PDF hep Excel dosyasının yanına düşer. Dosya adına tarih eklemek isterseniz "Rapor_" & Format(Date, "yyyy-mm-dd") & ".pdf" kalıbı her günün çıktısını ayrı saklar. Bu makroyu indirdiğiniz dosyaya kendiniz ekleyin: Alt+F11 > kod penceresinin en altına yazın — üç makrolu dosyanız ilk gerçek VBA pratiğiniz olur.

Özetle

İki küçük makro, VBA'nın iki temel kasını gösterir: sabit işi standartlaştırmak (başlık biçimi) ve değişken veriye uyum sağlamak (son satırı bulma). Kodları değiştirerek kendi rutininize uyarlayın; makronun ne olduğu ve güvenlik kuralları için makro nedir sayfası, sistemli VBA öğrenimi için Excel VBA eğitimi yol haritasıdır.

Sıkça Sorulan Sorular

Bu makro örneklerini kendi dosyamda nasıl kullanırım?

İndirdiğiniz .xlsm'de Alt+F11 ile kodu açıp Sub bloklarını kopyalayın; kendi dosyanızda Alt+F11 > Insert > Module deyip yapıştırın. Dosyanızı .xlsm olarak kaydetmeyi unutmayın — .xlsx makro saklamaz. Alt+F8 ile çalıştırırsınız.

Son dolu satırı bulan kod nasıl çalışıyor?

Cells(Rows.Count, 3).End(xlUp).Row — C sütununun en dibinden (1.048.576. satır) yukarı doğru ilk dolu hücreye 'zıplar' ve satır numarasını verir. Ctrl+Yukarı tuşunun kod karşılığıdır. Liste kaç satır olursa olsun çalıştığı için VBA'nın en çok kullanılan kalıbıdır.

RGB değerlerini nereden bulurum?

Excel'de Giriş > Dolgu Rengi > Diğer Renkler > Özel sekmesi her rengin Kırmızı-Yeşil-Mavi değerlerini gösterir; bu üç sayıyı RGB(r, g, b) içine yazarsınız. Örnekteki RGB(31, 78, 121) kurumsal lacivert tondur.

İki makroyu tek tuşla arka arkaya çalıştırabilir miyim?

Evet — makrolar birbirini adıyla çağırır. Yeni bir Sub açıp gövdesine alt alta BasligiBicimlendir ve SonSatiraToplamEkle yazmanız yeterli; bu 'ana makro' ikisini sırayla koşturur. Karmaşık otomasyonlar hep böyle küçük makroların zincirlenmesiyle kurulur.

Makro çalıştırdım ama hata verdi, ne yapmalıyım?

Hata penceresindeki Debug düğmesi sizi sorunlu satıra götürür (sarı vurgulu). En sık nedenler: etkin sayfanın beklenen tablo olmaması ve sütun numarasının verinize uymaması. Adımla (F8) ile satır satır ilerleyip hangi adımın patladığını görmek en hızlı teşhis yoludur.

Bu örneklerden sonra hangi makroları yazmalıyım?

Kendi rutininizi kaydedin: Makro Kaydedici açıkken her ay elle yaptığınız işlemi bir kez yapın, sonra üretilen kodu bu sayfadaki kalıplarla (son satırı bulma, RGB biçimleme) birleştirin. Gerçek ihtiyaçtan doğan makro, hazır listeden ezberlenen yüz makrodan daha öğreticidir.