【VBA】非表示シートを安全にPDF保存する方法
手作業で大量のデータをPDFに変換するのは大変です。特に非表示のシートまで含めるとさらに複雑になります。この記事では、VBAを使って簡単に全てのワークシート(非表示も含む)をPDFとして保存し、エラー処理を行う方法をお伝えします。
サンプルコード
VBA
Option Explicit
Sub SaveHiddenSheetsAsPDF()
Dim ws As Worksheet
Dim filePath As String
Application.ScreenUpdating = False '画面更新停止
On Error GoTo ErrorHandler 'エラーハンドリング開始
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible '非表示のシートを一時的に表示する
End If
Next ws
filePath = Application.GetSaveAsFilename(FileFilter:="PDF Files (*.pdf), *.pdf")
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Cleanup:
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Then
ws.Visible = xlSheetVeryHidden '非表示のシートを元に戻す
End If
Next ws
Application.ScreenUpdating = True '画面更新再開
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbExclamation
Resume Cleanup
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。また、ワークブックに問題がないか確認してみてください。