品質やページ数などなどの条件を指定してPDFファイルを出力する。
VBAでブック、シートの内容をPDF出力する時に利用するExportAsFixedFormatメソッドの引数を利用することで品質、印刷範囲、ページ数などの条件を付けてPDFファイルを出力することができます。
そのなかで下記の4パターンをサンプルコードでは記載しています。
※これらの引数はいずれも省略可能な引数となります。
| 引数名 | 説明 | 省略 | |
| 品質 | Quality | 標準品質(xlQualityStandard )、最小限品質(xlQualityMinimum )が指定可。 | 可 |
| 印刷範囲 | IgnorePrintAreas | 印刷範囲のみを出力させるかをTrue/Falseで指定。 Falseを指定した場合、印刷範囲のみをPDFに出力。 | 可 |
| ページ数 | From、To | ページ数を指定してPDFに出力。 Fromに開始ページ数、Toに終了ページ数を指定。 | 可 |
| 出力後の表示 | OpenAfterPublish | 出力後にPDFファイルを開くかをTrue/Falseで指定。 Trueを指定した場合にPDFファイルが自動で開く。 | 可 |
PDFへの出力方法についてはこちらのページにも掲載しています。
「シートの内容をPDFファイルに出力」
●品質を指定してPDFを出力(Quality)
'******************************************************************
' 品質を指定してPDFを出力(標準/最小限)
'******************************************************************
Sub exportPDF_Quality()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
'PDF出力(標準品質)
Sheets("Sheet1").ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sOutputPath & "QualityStandard.pdf", _
Quality:=xlQualityStandard
'PDF出力(最小限品質)
Sheets("Sheet1").ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sOutputPath & "QualityMinimum.pdf", _
Quality:=xlQualityMinimum
MsgBox "出力されました。"
End Sub●印刷範囲の部分のみPDFに出力(IgnorePrintAreas)
'******************************************************************
' 印刷範囲の部分のみPDFに出力
'******************************************************************
Sub exportPDF_PrintArea()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
'PDF出力(印刷範囲だけをPDFに出力)
Sheets("Sheet1").ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sOutputPath & "PrintArea.pdf", _
IgnorePrintAreas:=False
MsgBox "出力されました。"
End Sub●ページ数を指定してPDFに出力(From、To)
'******************************************************************
' ページ数を指定してPDFに出力
'******************************************************************
Sub exportPDF_Page()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
'PDF出力(ページ数を指定して出力)
Sheets("Sheet1").ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sOutputPath & "Page.pdf", _
From:=2, To:=3
MsgBox "出力されました。"
End Sub●出力後にPDFファイルを開く(OpenAfterPublish)
'******************************************************************
' 出力後にPDFファイルを開く
'******************************************************************
Sub exportPDF_OpenAfter()
'出力先のパスを指定
Dim sOutputPath As String
sOutputPath = "C:\VBA\pdf\"
'PDF出力(出力後にファイルを開く)
Sheets("Sheet1").ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sOutputPath & "Page.pdf", _
OpenAfterPublish:=True
End Sub

