Excel VBAでWordのトラック変更を含むドキュメントをPDF保存する方法

この記事では、Excel VBAを使用して、Wordのトラック変更を含むドキュメントをPDFとして保存する方法を詳しく説明します。具体的なコード例とその解説、さらには応用例を含めて解説します。特に、日本市場向けの情報に焦点を当てて提供します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAを用いたWordのトラック変更を含むドキュメントのPDF保存

Wordのトラック変更機能は、文書の変更点を明確に示すために頻繁に使用されます。この変更内容を確定せずにPDFとして保存することで、校閲や検討を求める際に役立ちます。

以下は、Excel VBAを使用してWordのドキュメントをPDFとして保存する基本的なコードです。


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

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

    ' Wordドキュメントのオープン
    filePath = "C:\path\to\your\word\document.docx" ' こちらのパスを適切に変更してください
    Set wdDoc = wdApp.Documents.Open(filePath)

    ' PDFとして保存
    wdDoc.ExportAsFixedFormat OutputFileName:=Replace(filePath, ".docx", ".pdf"), ExportFormat:=0

    ' Wordドキュメントのクローズ
    wdDoc.Close

    ' Wordアプリケーションの終了
    wdApp.Quit

    ' オブジェクトの解放
    Set wdDoc = Nothing
    Set wdApp = Nothing

End Sub

コードの詳細解説

– `CreateObject(“Word.Application”)`: WordアプリケーションをVBAから操作するためのオブジェクトを生成します。
– `wdApp.Documents.Open(filePath)`: 指定したファイルパスのWordドキュメントを開きます。
– `wdDoc.ExportAsFixedFormat`: WordドキュメントをPDFとして保存するメソッドです。`OutputFileName`で保存先のファイルパス、`ExportFormat:=0`でPDFとしての保存を指定しています。

応用例

1. 複数のWordドキュメントを一括でPDFに変換する

特定のフォルダ内にあるすべての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\your\folder" ' こちらのパスを適切に変更してください
    fileName = Dir(folderPath & "\*.docx")
    Do While fileName <> ""
        Set wdDoc = wdApp.Documents.Open(folderPath & "\" & fileName)
        wdDoc.ExportAsFixedFormat OutputFileName:=folderPath & "\" & Replace(fileName, ".docx", ".pdf"), ExportFormat:=0
        wdDoc.Close
        fileName = Dir
    Loop
    ' Wordアプリケーションの終了
    wdApp.Quit
    ' オブジェクトの解放
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

2. トラック変更の表示/非表示を選択してPDF保存する

トラック変更を表示した状態、または非表示の状態でPDFを保存することができます。


Sub SaveWithOrWithoutTrackChanges(showTrackChanges As Boolean)
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim filePath As String

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

    ' Wordドキュメントのオープン
    filePath = "C:\path\to\your\word\document.docx" ' こちらのパスを適切に変更してください
    Set wdDoc = wdApp.Documents.Open(filePath)

    ' トラック変更の表示/非表示を設定
    wdDoc.ShowRevisions = showTrackChanges

    ' PDFとして保存
    wdDoc.ExportAsFixedFormat OutputFileName:=Replace(filePath, ".docx", ".pdf"), ExportFormat:=0

    ' Wordドキュメントのクローズ
    wdDoc.Close

    ' Wordアプリケーションの終了
    wdApp.Quit

    ' オブジェクトの解放
    Set wdDoc = Nothing
    Set wdApp = Nothing

End Sub

3. パスワード付きのPDFを作成する

Wordのドキュメントをパスワードで保護されたPDFとして保存します。


Sub SaveWordDocAsPasswordProtectedPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim filePath As String

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

 wdApp.Visible = False

    ' Wordドキュメントのオープン
    filePath = "C:\path\to\your\word\document.docx" ' こちらのパスを適切に変更してください
    Set wdDoc = wdApp.Documents.Open(filePath)

    ' PDFとして保存
    wdDoc.ExportAsFixedFormat OutputFileName:=Replace(filePath, ".docx", ".pdf"), ExportFormat:=0, _
        OpenAfterExport:=False, Password:="YourPassword"

    ' Wordドキュメントのクローズ
    wdDoc.Close

    ' Wordアプリケーションの終了
    wdApp.Quit

    ' オブジェクトの解放
    Set wdDoc = Nothing
    Set wdApp = Nothing

End Sub

まとめ

この記事では、Excel VBAを使用して、Wordのトラック変更を含むドキュメントをPDFとして保存する方法について学びました。基本的な保存方法から応用的な利用方法まで、さまざまなシチュエーションでの活用法を網羅しました。この知識を活かして、日々の業務の効率化を図ってください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次