「マクロ word pdfで保存」
といった検索がこのサイト『インストラクターのネタ帳』で行われていました。
VBAを使ってWord文書をPDFファイルとして保存するには(PDFに変換するには)、どのようなコードを書けばいいのかを調べていらしたのでしょう。
PDF保存を行うサンプルマクロ
以下のWordマクロを実行すると、アクティブ文書が、アクティブ文書と同じフォルダーに、同じ名前のPDFファイルとして保存されます。
With ActiveDocument
Dim f_name As String, f_path As String
f_name = Split(.Name, ".")(0)
f_path = .Path & "\"
.ExportAsFixedFormat _
OutputFileName:=f_path & f_name, _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint
End With
End Sub
サンプルマクロで行っている処理
VBAでWord文書をPDFファイルに変換する方法は複数ありますが、上記のマクロではDocumentオブジェクトのExportAsFixedFormatメソッドを使っています。
Document.ExportAsFixedFormatメソッドの引数
Document.ExportAsFixedFormatメソッドにはたくさんの引数を指定でき、第1引数OutputFileNameと、第2引数ExportFormatが必須です。
上記のサンプルマクロでは、必須の引数OutputFileNameとExportFormatの他に、PDFファイル出力後にPDFファイルを開くかどうかを指定する引数OpenAfterExportと、画面または印刷用に最適化するかどうかを指定する引数OptimizeForを指定しています。
.ExportAsFixedFormat _ OutputFileName:=f_path & f_name, _ ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, _ OptimizeFor:=wdExportOptimizeForPrint
引数ExportFormat
第2引数ExportFormatは、オブジェクトブラウザーの詳細ペインに「ExportFormat As WdExportFormat」と表示されているとおり、WdExportFormat列挙型に定義されている定数を指定します。
今回はPDF保存するわけですから、定数wdExportFormatPDFを指定しています。
.ExportAsFixedFormat _ (途中省略) ExportFormat:=wdExportFormatPDF, _
引数OutputFileName
第1引数OutputFileNameファイルには、出力するファイル名を指定します。
.ExportAsFixedFormat _ OutputFileName:=f_path & f_name, _
そのために上記のマクロでは、事前に変数f_nameにファイル名を、f_pathに保存するフォルダーのパスを代入しています。
With ActiveDocument Dim f_name As String, f_path As String f_name = Split(.Name, ".")(0) f_path = .Path & "\"
ファイル名は、拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』でも解説している、Document.Nameプロパティで取得した拡張子を含んだファイル名から、
With ActiveDocument (途中省略) f_name = Split(.Name, ".")(0)
拡張子を除いた部分をVBAのSplit関数を使って取得しています。
f_name = Split(.Name, ".")(0)
PDFファイルの保存先フォルダーのパスは、拙著でも紹介しているDocument.Pathプロパティを使って取得したパスに
With ActiveDocument (途中省略) f_path = .Path & "\"
\マークを付加しています。
最終更新日時:2024-09-25 13:41
- Newer:VBAのSplit関数で区切り文字がない場合の挙動
- Older:Word VBAで改行と段落記号を入力する基本
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » VBAでWord文書をPDFで保存する・PDFに変換する