この記事では、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の力を活用して、日常の業務をより効率的に行いましょう。
コメント