Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » VBAでWord文書をPDFで保存する・PDFに変換する

VBAでWord文書をPDFで保存する・PDFに変換する

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2410(ビルド18112.20000クイック実行)ベータチャネル

「マクロ word pdfで保存」
といった検索がこのサイト『インストラクターのネタ帳』で行われていました。

VBAを使ってWord文書をPDFファイルとして保存するには(PDFに変換するには)、どのようなコードを書けばいいのかを調べていらしたのでしょう。

PDF保存を行うサンプルマクロ

以下のWordマクロを実行すると、アクティブ文書が、アクティブ文書と同じフォルダーに、同じ名前のPDFファイルとして保存されます。

Sub アクティブ文書を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

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » VBAでWord文書をPDFで保存する・PDFに変換する

「Documentオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.