Excel VBAでフィルタリングされたデータをPDFで保存する方法

この記事では、Excel VBAを利用してフィルタリングされたデータをPDFで保存する方法について解説します。具体的なコード例とその詳細な解説を通じて、初心者から中級者まで、VBAの処理の基本をしっかりと掴むことができるでしょう。さらに応用例も紹介していますので、より高度な操作にも対応できるようになります。

目次

基本的な処理:フィルタリングされたデータをPDFで保存

Excelのデータをフィルタリングし、その結果をPDFとして保存する処理は、レポートやドキュメントの作成において非常に便利です。以下に、そのためのVBAコードを示します。


Sub SaveFilteredDataAsPDF()
    Dim ws As Worksheet
    Dim LastRow As Long
    Dim savePath As String

    'ワークシートの設定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    '最終行の取得
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    'PDFで保存するパスを指定
    savePath = "C:\example\filteredData.pdf"

    'フィルタリングされたデータの範囲をPDFとして保存
    ws.Range("A1:A" & LastRow).SpecialCells(xlCellTypeVisible).ExportAsFixedFormat _
        Type:=xlTypePDF, Filename:=savePath, Quality:=xlQualityStandard

    MsgBox "PDFが保存されました。", vbInformation

End Sub

コードの解説

1. 最初に、ワークシートとして”Sheet1″を指定しています。これは、操作対象のシート名に応じて変更する必要があります。
2. `LastRow`はシート内の最後のデータ行を取得するために使用します。
3. `savePath`で、PDFとして保存するファイルのパスを指定します。必要に応じて変更してください。
4. 最後に、`ExportAsFixedFormat`メソッドを使用して、フィルタリングされたデータの範囲をPDFとして保存します。

応用例

1. 保存先のファイル名に現在の日付を追加


savePath = "C:\example\filteredData_" & Format(Now, "yyyymmdd") & ".pdf"

これにより、`filteredData_20230916.pdf` のように日付がファイル名に追加されます。

2. 複数のシートのフィルタリングデータを一つのPDFに保存


Sub SaveMultipleSheetsAsPDF()
    Dim savePath As String
    savePath = "C:\example\multiFilteredData.pdf"
    ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath, Quality:=xlQualityStandard
End Sub

このコードでは、”Sheet1″と”Sheet2″のフィルタリングされたデータを1つのPDFに保存します。

3. PDFの保存前にプレビューを表示


ThisWorkbook.Sheets("Sheet1").PrintPreview

このコードを追加することで、保存前にPDFのプレビューが表示されます。確認後、保存を進めることができます。

まとめ

Excel VBAを使って、フィルタリングされたデータをPDFで簡単に保存する方法を学びました。これをベースに、応用例を使ってより高度な操作も可能です。VBAの力を活用して、日常の業務をより効率的に行いましょう。

コメント

コメントする

目次