「Excel VBA PDF保存」で検索すると、
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF
といったオブジェクト式が紹介されているケースが多いためでしょう、
「excel マクロ設定 アクティブじゃないシートをpdf保存」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
「ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF」では、アクティブなシートがPDFファイルとして出力されるため、アクティブではないシートの場合に、どのようなコードにすればいいのかを探していた方による検索です。
指定したワークシートをPDF保存するサンプルマクロ
以下のSubプロシージャを実行すると、1枚目のワークシートが「C:\TEMP」フォルダーに出力されます。
Const PATH_ = "C:\TEMP\"
Dim sh As Worksheet Set sh = Worksheets(1)
sh.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=PATH_ & sh.Name
End Sub
「ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF」というオブジェクト式は、ActiveSheetプロパティでアクティブなWorksheetオブジェクトを取得して、Worksheet.ExportAsFixedFormatメソッドを利用しています。
このWorksheetオブジェクトを取得するオブジェクト式「ActiveSheet」を変更すれば、
「excel マクロ設定 アクティブじゃないシートをpdf保存」
となります。
上記のプロシージャの
Set sh = Worksheets(1)
を、例えば、
Set sh = Worksheets("シート1")
に変更すれば「シート1」ワークシートがPDF出力されます。
全ワークシートをPDF保存するサンプルマクロ
以下のようなSubプロシージャにすれば、アクティブなブックのすべてのワークシートがPDFファイルとして出力されます。
Const PATH_ = "C:\TEMP\"
Dim sh As Worksheet For Each sh In Worksheets
sh.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=PATH_ & sh.Name
Next sh
End Sub
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAでシートをPDF保存する