この記事では、Excel VBAを用いてWordドキュメントのヘッダーやフッターを含む範囲をPDFとして保存する手順について詳しく解説します。初心者から上級者まで、効率的にWordドキュメントをPDFに変換する方法を身につけることができます。
基本のコード
WordドキュメントをPDFとして保存する基本のVBAコードを以下に示します。
Sub SaveWordAsPDF()
Dim WordApp As Object
Dim WordDoc As Object
Dim FileName As String
Dim PDFName As String
' Wordアプリケーションを開始
Set WordApp = CreateObject("Word.Application")
' Wordドキュメントを開く
FileName = "C:\path\to\your\document.docx" 'ここにWordファイルのパスを指定
Set WordDoc = WordApp.Documents.Open(FileName)
' PDFとして保存
PDFName = "C:\path\to\save\document.pdf" 'ここに保存するPDFのパスを指定
WordDoc.ExportAsFixedFormat PDFName, 17 '17はPDF形式を意味する
' Wordドキュメントとアプリケーションを閉じる
WordDoc.Close
WordApp.Quit
End Sub
このコードは、Wordアプリケーションを開始し、指定されたWordドキュメントを開いてPDFとして保存し、Wordアプリケーションを閉じるというシンプルな処理を行います。
コードの詳細解説
コードの各部分の詳細な解説を以下に示します。
CreateObject関数
この関数は、指定された外部アプリケーションのインスタンスを生成します。今回は”Word.Application”を指定してWordアプリケーションのインスタンスを生成しています。
Documents.Openメソッド
WordアプリケーションのDocumentsオブジェクトのOpenメソッドを使用して、指定されたWordドキュメントを開きます。
ExportAsFixedFormatメソッド
このメソッドはWordドキュメントをPDFやXPS形式で保存するためのメソッドです。第1引数には保存先のファイルパスを、第2引数には保存する形式を指定します。今回は17(PDF形式)を指定しています。
応用例
1. 複数のWordドキュメントを一度にPDFとして保存
以下のコードは、指定したフォルダ内のすべてのWordドキュメントをPDFとして保存する例です。
Sub SaveMultipleWordAsPDF()
Dim WordApp As Object
Dim WordDoc As Object
Dim FolderPath As String
Dim FileName As String
Dim PDFName As String
' Wordアプリケーションを開始
Set WordApp = CreateObject("Word.Application")
FolderPath = "C:\path\to\folder\" ' Wordドキュメントのあるフォルダを指定
FileName = Dir(FolderPath & "*.docx")
Do While FileName <> ""
Set WordDoc = WordApp.Documents.Open(FolderPath & FileName)
PDFName = FolderPath & Replace(FileName, ".docx", ".pdf")
WordDoc.ExportAsFixedFormat PDFName, 17
WordDoc.Close
FileName = Dir()
Loop
WordApp.Quit
End Sub
2. 特定のセクションのみをPDFとして保存
以下のコードは、Wordドキュメントの特定のセクションのみをPDFとして保存する例です。
Sub SaveSpecificSectionAsPDF()
Dim WordApp As Object
Dim WordDoc As Object
Dim FileName As String
Dim PDFName As String
' Wordアプリケーションを開始
Set WordApp = CreateObject("Word.Application")
' Wordドキュメントを開く
FileName = "C:\path\to\your\document.docx"
Set WordDoc = WordApp.Documents.Open(FileName)
' 第2セクションのみをPDFとして保存
PDFName = "C:\path\to\save\section2.pdf"
WordDoc.ExportAsFixedFormat PDFName, 17, , , 2, 2
' Wordドキュメントを閉じる
WordDoc.Close
WordApp.Quit
End Sub
3. ワードプレスのタイトルにPDFとして保存
Wordドキュメントの内容を基にワードプレスのタイトルをPDFとして保存する例です。
Sub SaveWordTitleAsPDF()
Dim WordApp As Object
Dim WordDoc As Object
Dim FileName As String
Dim PDFName As String
Dim Title As String
' Wordアプリケーションを開始
Set WordApp = CreateObject("Word.Application")
' Wordドキュメントを開く
FileName = "C:\path\to\your\document.docx"
Set WordDoc = WordApp.Documents.Open(FileName)
' Wordのタイトルを取得
Title = WordDoc.BuiltInDocumentProperties("Title")
' タイトルを基にPDF
として保存
PDFName = "C:\path\to\save\" & Title & ".pdf"
WordDoc.ExportAsFixedFormat PDFName, 17
' Wordドキュメントを閉じる
WordDoc.Close
WordApp.Quit
End Sub
まとめ
Excel VBAを活用してWordドキュメントをPDFとして保存する方法について、基本から応用まで詳しく解説しました。これらの技術を用いることで、日常の業務やタスクを効率的に自動化することが可能となります。是非とも実践してみて、VBAの強力な機能を最大限に活用してください。
コメント