📘 Excel逆引き事典

【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.
シート名や列番号が正しいか確認してください。また、ワークブックに問題がないか確認してみてください。