Excelden Word metin içeriği doldurma - Word sayfaları ayrı ayrı tekli PDF sayfası yapma

1. Çalışma:
Adetli veri girişini hızlandırmak adına, data bilgisi Excel üzerinde işlenmesi ile "Tarih, TC No, Adı ve Soyadı" bilgilerinin girildiği dosya oluşturulur.

Aşağıdaki örnekte, bir dilekçemiz mevcut. "Tarih, TC No, Adı ve Soyadı" bilgilerinin her belge için tek tek girilmesi yerine, Bu veriyi Excel'den çekilmesi ilgili alanlara işlenir. Word üzerindeki "Posta Gönderileri" başlığı altında "Alıcıları seç/Varolan listeyi seç/Varolan Listeyi Kullan" seçeneklerine tıklayın.

"C:\" dizini altında C:\M_Mektuplar klasörü oluşturup, tüm bağlantıları bu adres ve isimlere göre gerçekleştirildi. Üstteki seçim sonrası "Posta Gönderileri" seçenekleri sonrası, ilgili dizindeki Excel veri dosyası seçilip, "Aç" butonuna tıklanır.

Açılan bildirime "Tamam" butonuna basarak onaylayın.

Veri şablon olarak yansır. "Tamam" butonuna basarak onaylayın.

Not: İlgili alanlar nasıl oluşturulur. (Bu kısımdan biraz bahsedelim)
Aşağıda "öncelikle" kelimesinin geçtiği kelimenin olduğu yere listedeki istediğimiz başlıklara göre veri yansıması için, Öncelikle kelimeyi seçin ardından, "Posta Gönderileri" başlığı altında "Birleştirme Alanı Ekle" sonrasında  Örnek: "SNo" tıklayın.

Örnek: "SNo" seçimi sonrası, << >> şeklinde kelime yansıdığında bağlantı kuruldu demektir.

<< >> şeklindeki alanı seçip "Kalın" yazı tipi yapıldı.

"Posta Gönderileri" başlığı altında "Bitir ve Birleştir Son" butonuna basılması sonrasında, "Yeni Belgeye Birleştir" penceresinde, "Tamam" butonuna basın.

İlgili alanlara, Excel'den verilerin yansıması 1. Örnek

İlgili alanlara, Excel'den verilerin yansıması 2. Örnek

Verilerin yansıdığı dosya, "Mektuplar" ismiyle ilgili klasöre farklı kaydedilir. "Kaydet" butonuna basın. (Veritabanı bağlantısından bağımsız, Tüm verilerin yansıdığı Word belgesi elde edilir)


2. Çalışma:
Word belgesindeki sayfalar sayısınca, her sayfa için ayrı PDF elde etmek için Makro çalışması.
Aşağıda 20 sayfaya kadar butonlar ve arka planda Makro kod bağlantıları yapıldı. 
İlgili sayfayı PDF yapmak için sol taraftaki butonlara basmak gerekli, Birden-İlgili sayfaya kadar PDF oluşturmak için, sağ taraftaki butonlara basılması yeterlidir.

Not: "Geliştirici" Başlığı altında, "Makro Güvenliği/Makro ayarları/Tüm makroları etkinleştir" seçeneğini seçerek aktif edin. Belgeyi kapatıp bir daha açtığınızda aktif olur.



C:\M_Mektuplar klasörü içine, ilgili isimle "docm" (Makro) formatında kayıt gerçekleştirilir.

Örnek görünüm. "1-10" butonuna basıldığında, saniyeler içerisinde "M1.pdf" ile başlayıp "M10.pdf" ismiyle, her sayfa "M" ismi ve sayfa sırasına göre isimlendirilerek PDF dosyası oluşur.

Not: Buton ile İlgili alanların oluşturulması konusunda bilgilendirme.
"Geliştirici" Başlığı altında Araçlar ikonuna basılması sonrası "ActiveX Denetimleri" içinde bulunan "Komut düğmesi" ikonuna tıklanarak, buton eklenir.

"Geliştirici" Başlığı altında, "Tasarım Modu" butonuna basılması sonrası, butonlara tıklanırsa, düzenleme aktif olmakta. Bir daha basılması ile "Tasarım Modu" butonuna basılması ile düzenleme modu kapanıp pasif olmaktadır.
"Tasarım Modu" aktifken ilgili butona tıklanır. seçim kesik çizgileri belirir. Buton üzerinde sağ klik "CommandButton Nesnesi" sonra "Edit" seçimine tıklanması ile isimlendirme yapılabilir.


1. Sayfa PDF  buton içerik kodu aşağıdaki gibidir.
"C:\M_Mektuplar" Word belgesinin okunduğu dizin. Kodun ikinci kısmı "Active Document" alt satırında yer alan dizin adresi dosya Export edildiği dizin ve dosya uzantısı. "M.pdf"
"From" satırında ise sayfanın başlangıcı ve bitişini yansıtmaktadır. İki değerde aynı olursa, sadece O sayfayı ifade etmektedir.

Seçilebilir kod:
Private Sub CommandButton1_Click()
' M1
'
    ChangeFileOpenDirectory "C:\M_Mektuplar"
    Documents.Open FileName:="Mektuplar.docx", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
    
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\M_Mektuplar\M1.pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=1, To:=1, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub


2. Sayfa PDF  buton içerik kodu aşağıdaki gibidir.
"C:\M_Mektuplar" Word belgesinin okunduğu dizin. Kodun ikinci kısmı "Active Document" alt satırında yer alan dizin adresi dosya Export edildiği dizin ve dosya uzantısı. "M.pdf"
"From" satırında ise sayfanın başlangıcı ve bitişini yansıtmaktadır. İki değerde aynı olursa, sadece O sayfayı ifade etmektedir.

Seçilebilir kod:
Private Sub CommandButton2_Click()
' M1
'
    ChangeFileOpenDirectory "C:\M_Mektuplar"
    Documents.Open FileName:="Mektuplar.docx", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
    
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\M_Mektuplar\M2.pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=2, To:=2, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub


1-3 Arası Sayfaları ayrı ayrı PDF yapma  buton içerik kodu aşağıdaki gibidir.
"C:\M_Mektuplar" Word belgesinin okunduğu dizin. Kodun ikinci kısmı "Active Document" alt satırında yer alan dizin adresi dosya Export edildiği dizin ve dosya uzantısı. "M.pdf"
"From" satırında ise sayfanın başlangıcı ve bitişini arttırarak toplu sayfa pdf içeriği oluşturulur.


Seçilebilir kod:
Private Sub CommandButton3_Click()
' M1-M3
'
    ChangeFileOpenDirectory "C:\M_Mektuplar"
    Documents.Open FileName:="Mektuplar.docx", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _

        "C:\M_Mektuplar\M1.pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=1, To:=1, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
        
            ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\M_Mektuplar\M2.pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=2, To:=2, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
        
            ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\M_Mektuplar\M3.pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=3, To:=3, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub

Çalışma dosyalarını indirmek için Tıklayın.