この記事では、Excel VBAを使用して、Wordのコメントや修正履歴を含むドキュメントをPDFとして保存する方法を解説します。初心者向けに具体的なコード例、その詳細解説、さらに応用例を提供します。これにより、日常の業務やレポート作成の際に、Wordの機能を最大限に活用することができます。
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として保存する方法について学びました。この方法を利用することで、業務の効率化やレポート作成時の手間を大幅に削減することが可能です。また、提供された応用例を参考にして、さまざまなシチュエーションに対応するカスタマイズを行うことができます。
コメント