「パワーポイント vba pdf」
「powerpoint2010 マクロ pdf化」
「power point 2010 vba pdf 保存」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折見られます。
プレゼンテーションファイルからPDFファイルを作成する・PDFを出力するマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
Presentation.SaveAsメソッドを使ったマクロ
参考になりそうなシンプルなマクロをご紹介しておきます。
Dim full_path As String
Dim file_name As String
With ActivePresentation
full_path = .Path
file_name = fileNameWithoutExtension(.Name)
.SaveAs _
fileName:=full_path & "\" & file_name & ".pdf", _
FileFormat:=ppSaveAsPDF
End With
End Sub
Function fileNameWithoutExtension(ByVal fileName As String) As String
Dim pos_dot As Long
''拡張子を取り除くため「.」の位置を後から探す
pos_dot = InStrRev(fileName, ".")
''拡張子を取り除いたファイル名を返す
fileNameWithoutExtension = Left(fileName, pos_dot - 1)
上記のSubプロシージャを実行すると、アクティブなプレゼンテーションファイルと同じフォルダに、同じファイル名のPDFファイルが保存されます。
アクティブなプレゼンテーションファイルの、フルパスを変数・full_pathに格納し、
With ActivePresentation
full_path = .Path
拡張子部分を除いたファイル名を変数・file_nameに格納しています。
file_name = fileNameWithoutExtension(.Name)
ファイル名から拡張子を除く処理はFunctionプロシージャ・fileNameWithoutExtensionとして独立させています。
取得したフルパスと、拡張子なしのファイル名を使って、Presentation.SaveAsメソッドを実行してPDFファイルとして保存しています。
.SaveAs _
fileName:=full_path & "\" & file_name & ".pdf", _
FileFormat:=ppSaveAsPDF
Presentation.ExportAsFixedFormatメソッドを使ったマクロ
同じことを、Presentation.ExportAsFixedFormatメソッドを使っても行うことができます。
Dim full_path As String
Dim file_name As String
With ActivePresentation
full_path = .Path
file_name = fileNameWithoutExtension(.Name)
.ExportAsFixedFormat _
Path:=full_path & "\" & file_name & ".pdf", _
FixedFormatType:=ppFixedFormatTypePDF
End With
考え方は、先のSaveAsメソッドを使ったマクロと同じです。
マクロの作りとしては、最後に
.SaveAs _
するのか
.ExportAsFixedFormat _
するのかの違いです。
但し、Presentation.ExportAsFixedFormatメソッドは、SaveAsメソッドよりもたくさんの引数が指定できることがVBA的には違います。
詳細は、Presentation.ExportAsFixedFormatメソッドのヘルプをご確認ください。
- Newer:IF関数で○○以上××以下という条件を指定する
- Older:VBAの名前付き引数がピンと来ない
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Presentation・プレゼンテーション » PDFファイルを作成・出力するPowerPointマクロ