はじめに
エクセルのシートに帳票を作成したものの、毎回手動でPDF出力するのが面倒なのでVBAで自動的に出力するようにしました。
ソース
''' sheetName 保存元のシート名
''' filePath 保存先のファイルパス
Sub PDF保存(sheetName As String, filePath As String)
Worksheets(sheetName).PageSetup.Zoom = False
Worksheets(sheetName).PageSetup.FitToPagesWide = 1
Worksheets(sheetName).PageSetup.FitToPagesTall = 1
Worksheets(sheetName).ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, IgnorePrintAreas:=True, Quality:=xlQualityStandard
End Sub
解説
引数と使い方
第一引数に保存したいシートの名前(文字列)を、第二引数に保存先のパスを入れてください。
Worksheets(sheetName).PageSetup.Zoom
後述のFitToPagesWideとFitToPagesTallを使う場合にはFalseにする必要があります
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.zoom
Worksheets(sheetName).PageSetup.FitToPagesWide
ページ幅を指定する
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.fittopageswide
Worksheets(sheetName).FitToPagesTall
ページ高さを指定する
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.fittopageswide
Worksheets(sheetName).ExportAsFixedFormat
出力時のフォーマットを指定できます。
今回は、
- PDFで
- ファイルパスを指定して
- 印刷範囲指定をONにして
- 高品質で
出力するように設定しています。