📘 Excel逆引き事典

【VBA】可視セル(フィルタ結果)をエラー処理付きでPDF保存する方法

毎回フィルタ結果だけを印刷するのは手間がかかるですよね。この記事では、可視セルのみをPDFに保存するVBAマクロを作成し、エラー処理も含めて解説します。効率的な業務遂行のためにぜひお試しください。

サンプルコード

VBA
Option Explicit
Sub SaveVisibleCellsAsPDF()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' フィルタ結果を含むシート名に変更してください。
    
    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler
    
    With ws.PageSetup
        .PrintArea = ws.Range("A1:Z" & LastRow(ws)).SpecialCells(xlCellTypeVisible).Address ' 可視セルの範囲を設定します。
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlStartingWithFirstPage
    End With
    
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\your\file.pdf", Quality:=xlQualityStandard ' PDF保存先のパスを指定してください。
    
ErrorHandler:
    If Err.Number <> 0 Then MsgBox "エラーが発生しました。" & vbCrLf & "エラーコード: " & Err.Number & vbCrLf & "メッセージ: " & Err.Description
    Application.ScreenUpdating = True
End Sub

Function LastRow(ws As Worksheet) As Long
    LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' 最終行を取得します。
End Function

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。