Excel Makro (VBA) Dersleri - 12: Makro ile Toplu PDF Çıktısı Almak

kusha · 01 Ağustos 2026 · 5 dk okuma

Elinizde yüzlerce/binlerce kayıt varsa (ör. her personel için ayrı bir maaş bordrosu), bunları tek tek PDF'e çevirmek yerine VBA ile saniyeler içinde toplu üretebilirsiniz.

1. Adım: Bir Şablon Sayfası Hazırlamak

Ayrı bir sayfada, DÜŞEYARA gibi formüllerle bir kayıt sayfasından bilgileri çeken bir belge şablonu tasarlayın (isim, şehir, maaş vb. otomatik gelsin).

2. Adım: Yazdırma Alanını Belirlemek

Worksheets("Belge").PageSetup.PrintArea = "A1:F20"

3. Adım: PDF'e Aktarmak

Worksheets("Belge").ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="C:\Hedefler\" & isim & " " & soyisim & ".pdf"

ExportAsFixedFormat, o sayfanın yazdırma alanını doğrudan PDF olarak kaydeder — Filename parametresinde değişkenleri birleştirerek her kayıt için farklı bir dosya adı üretebilirsiniz.

4. Adım: Klasör Yoksa Oluşturmak

Hedef klasör önceden yoksa ExportAsFixedFormat hata verir. Klasörü kod ile oluşturmak için:

If Dir("C:\Hedefler", vbDirectory) = "" Then
    MkDir "C:\Hedefler"
End If

5. Adım: Tüm Kayıtlar İçin Döngü Kurmak

Dim sonSatir As Long, i As Long
Dim isim As String, soyisim As String

sonSatir = Worksheets("Database").Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To sonSatir
    isim = Worksheets("Database").Range("B" & i).Value
    soyisim = Worksheets("Database").Range("C" & i).Value

    Worksheets("Belge").Range("C4").Value = isim
    Worksheets("Belge").Range("C5").Value = soyisim

    Worksheets("Belge").ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="C:\Hedefler\" & isim & " " & soyisim & ".pdf"
Next i

Bu döngü, veri tablosundaki her satır için şablonu güncelleyip ayrı bir PDF olarak kaydeder — sonuçta bir düğmeye tıklamanız yeterli, yüzlerce kişisel belge saniyeler içinde hazır olur.

Sırada Ne Var?

Sırada, üretilen bu belgeleri Outlook üzerinden toplu e-posta olarak göndermeyi göreceğiz.