Excel VBAでWordドキュメントのコメント・修正履歴をPDFで保存する方法

この記事では、Excel VBAを使用して、Wordのコメントや修正履歴を含むドキュメントをPDFとして保存する方法を解説します。初心者向けに具体的なコード例、その詳細解説、さらに応用例を提供します。これにより、日常の業務やレポート作成の際に、Wordの機能を最大限に活用することができます。

目次

Excel VBAの基本

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

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

VBAでWordドキュメントをPDFに保存する基本的な方法


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

    'Wordアプリケーションを開始
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False '背景で動作

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

    'コメントと修正履歴を表示状態にする
    wdDoc.ShowRevisionsAndComments = True
    wdDoc.PrintRevisions = True

    'PDFとして保存
    wdDoc.ExportAsFixedFormat OutputFileName:="C:\path\to\output\file.pdf", _
        ExportFormat:=0, OpenAfterExport:=False

    'Wordアプリケーションを終了
    wdDoc.Close False
    Set wdDoc = Nothing
    wdApp.Quit
    Set wdApp = Nothing
End Sub

コードの詳細解説

– `wdApp` および `wdDoc` は、それぞれWordアプリケーションとドキュメントを参照するためのオブジェクト変数です。
– `CreateObject(“Word.Application”)` は、Wordアプリケーションのインスタンスを作成します。
– `wdApp.Visible = False` は、Wordをバックグラウンドで動作させるための設定です。
– `wdDoc.ShowRevisionsAndComments` と `wdDoc.PrintRevisions` は、コメントと修正履歴をPDFに表示させるための設定です。
– `wdDoc.ExportAsFixedFormat` は、ドキュメントをPDFとして保存するメソッドです。

応用例

1. 複数のWordドキュメントをまとめてPDFに変換


Sub ConvertMultipleWordToPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim strFolder As String
    Dim strFile As String
    'Wordアプリケーションを開始
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False
    strFolder = "C:\path\to\your\folder\"
    strFile = Dir(strFolder & "*.docx")
    Do While strFile <> ""
        Set wdDoc = wdApp.Documents.Open(strFolder & strFile)
        wdDoc.ShowRevisionsAndComments = True
        wdDoc.PrintRevisions = True
        wdDoc.ExportAsFixedFormat OutputFileName:=strFolder & Replace(strFile, ".docx", ".pdf"), _
            ExportFormat:=0, OpenAfterExport:=False
        wdDoc.Close False
        strFile = Dir
    Loop
    wdApp.Quit
    Set wdApp = Nothing
End Sub

解説

指定フォルダ内のすべてのWordドキュメントをPDFに変換します。`Dir` 関数を使用してフォルダ内のWordドキュメントを順番に処理します。

2. パスワードを設定したPDFを作成


'※この機能はWordのバージョンによっては利用できない場合があります。
Sub SaveWordDocAsPasswordProtectedPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim strFileName As String

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

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

    'コメントと修正履歴を表示状態にする
    wdDoc.ShowRevisionsAndComments = True
    wdDoc.PrintRevisions = True

    'PDFとして保存(パスワードを設定)
    wdDoc.ExportAsFixedFormat OutputFileName:="C:\path\to\output\file.pdf", _
        ExportFormat:=0, OpenAfterExport:=False, _
        OptimizeFor:=0, _
        OpenAndRepair:=False, _
        DocumentPassword:="YourPassword"

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

解説

`DocumentPassword:=”YourPassword”` を使用して、PDFにパスワードを設定します。

3. 特定のセクションだけをPDFに変換


Sub SaveSpecificSectionAsPDF()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim strFileName As String
    Dim sec As Object

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

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

    'コメントと修正履歴を表示状態にする
    wdDoc.ShowRevisionsAndComments = True
    wdDoc.PrintRevisions = True

    '第2セクションだけをPDFに保存
   

 Set sec = wdDoc.Sections(2).Range
    sec.ExportAsFixedFormat OutputFileName:="C:\path\to\output\section2.pdf", _
        ExportFormat:=0, OpenAfterExport:=False

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

解説

`wdDoc.Sections(2).Range` を使用して、Wordドキュメントの第2セクションだけを選択し、それをPDFに保存します。

まとめ

Excel VBAを使用して、Wordドキュメントの特定の内容、例えばコメントや修正履歴を含めてPDFとして保存する方法について学びました。この方法を利用することで、業務の効率化やレポート作成時の手間を大幅に削減することが可能です。また、提供された応用例を参考にして、さまざまなシチュエーションに対応するカスタマイズを行うことができます。

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

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

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

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

コメント

コメントする

目次