見出し画像

Excel VBAを使って複数シートをPDFで出力する

VBAでPDF出力するならExportAsFixedFormatメソッドを使うが、WorkSheetsオブジェクトはサポートされていないっぽくて複数シートの直接指定ができない。

どういうことかというとこんなのができない。

Sub ExportAsPdf()
   Dim TargetPath As String
   TargetPath = ThisWorkbook.Path & "\MyPDF.pdf"
   Dim TargetSheets As Worksheets
   Set TargetSheets = WorkSheets(Array(Sheet1.Name, Sheet2.Name))
   TargetSheets.ExportAsFixedFormat _
       Type:=xlTypePDF, _
       filename:=TargetPath
End Sub

どうも対応しているオブジェクトが限られていて、調べた限りでは以下のようだ。

Range
Chart
Worksheet
Chartsheet
Workbook
Project

ということで、やりたいことをやるなら少し気持ち悪いがこんな感じになってしまう。

Sheet1.select
Sheet2.select False
Selection.ExportAsFixedFormat

この場合だとWorkbookオブジェクトが対象になっているのかもよくわからん。個人的には対象をオブジェクト変数に直接ぶち込んでメソッドを指定したいのだがやり方が見つからなかった。

もし分かる人がいたら教えてください。
では。


よろしければサポートお願いします🥕 サポートはレビュー記事作成の原資となります