Excel VBAを利用してWordドキュメントをPDFに保存する方法

この記事では、Excel VBAを使用して、画像やグラフィックを含むWordドキュメントをPDFとして保存する方法について詳細に説明します。具体的なコード例、その詳細な解説、さらに応用例までを網羅しています。

目次

Excel VBAを使用してWordドキュメントをPDFとして保存する基本的な方法

Wordオブジェクトの活用により、Excel VBAからWordドキュメントを操作し、PDFとして保存することが可能です。


Sub SaveWordDocAsPDF()
    Dim wdApp As Object
    Dim wdDoc As Object

    ' Wordアプリケーションを起動
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False

    ' Wordドキュメントを開く
    Set wdDoc = wdApp.Documents.Open("C:\path\to\your\word\document.docx")

    ' PDFとして保存
    wdDoc.SaveAs2 "C:\path\to\save\document.pdf", 17

    ' Wordドキュメントとアプリケーションを閉じる
    wdDoc.Close
    wdApp.Quit
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

コードの解説

1. **Wordオブジェクトの設定**: VBAでWordを操作するため、Wordアプリケーションのオブジェクト(`wdApp`)とWordドキュメントのオブジェクト(`wdDoc`)を定義します。
2. **Wordアプリケーションの起動**: `CreateObject`関数を使用してWordアプリケーションを起動します。`wdApp.Visible = False`により、バックグラウンドでの動作とします。
3. **Wordドキュメントの開く**: `wdApp.Documents.Open`メソッドで指定のパスのWordドキュメントを開きます。
4. **PDFとして保存**: `wdDoc.SaveAs2`メソッドを使用して、WordドキュメントをPDFとして保存します。17はPDFフォーマットを意味します。
5. **終了処理**: ドキュメントとアプリケーションを閉じ、オブジェクトをリリースします。

応用例

応用例1: 複数のWordドキュメントを一括でPDFに変換


Sub ConvertMultipleWordDocsToPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim folderPath As String
    Dim fileName As String
    ' Wordアプリケーションを起動
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False
    folderPath = "C:\path\to\word\documents\"
    fileName = Dir(folderPath & "*.docx")
    ' フォルダ内の各WordドキュメントをPDFに変換
    Do While fileName <> ""
        Set wdDoc = wdApp.Documents.Open(folderPath & fileName)
        wdDoc.SaveAs2 folderPath & Replace(fileName, ".docx", ".pdf"), 17
        wdDoc.Close
        fileName = Dir
    Loop
    wdApp.Quit
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

応用例2: Wordドキュメント内の指定のテキストを編集してからPDFとして保存


Sub EditAndSaveAsPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim rng As Object

    ' Wordアプリケーションを起動
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False

    ' Wordドキュメントを開く
    Set wdDoc = wdApp.Documents.Open("C:\path\to\your\word\document.docx")

    ' テキストを置換
    Set rng = wdDoc.Content
    rng.Find.Execute FindText:="old_text", ReplaceWith:="new_text", Replace:=2

    ' PDFとして保存
    wdDoc.SaveAs2 "C:\path\to\save\document_edited.pdf", 17

    wdDoc.Close
    wdApp.Quit
    Set rng = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

応用例3: PDFに変換する際の設定をカスタマイズ


Sub SaveWithCustomSettings()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim pdfSettings As Object

    ' Wordアプリケーションを起動
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False

    ' Wordドキュメントを開く
    Set wdDoc = wdApp.Documents.Open("C:\path\to\your\word\document.docx")

    ' PDFの設定をカスタマイズ
    Set pdfSettings = wdDoc.ExportAsFixedFormat
    With pdfSettings
        .ExportFormat = 17
        .OpenAfterExport = False
        .OptimizeFor = 0
        .BitmapMissingFonts = True
        .UseISO19005_1 = False
    End With

    ' PDFとして保存
    wdDoc.SaveAs2 "C:\path\to\save\custom_document.pdf", 17, , , , , , , , , pdfSettings

    wdDoc.Close
    wdApp.Quit
    Set pdfSettings = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

まとめ

Excel VBAを利用してWordドキュメントをPDFとして保存する方法は、日常業務で非常に便利である。上述した基本的な方法をマスターしたら、

さらなる応用例にチャレンジして、業務効率の向上を図ってみてはいかがでしょうか。

コメント

コメントする

目次