Excel VBAで特定のシートをPDFとして保存する方法

Excelの中で、特定のシートをPDFとして保存するタスクは、日常業務の自動化やレポート作成の際に非常に便利です。VBAを使用すれば、この作業を効率的に行うことができます。この記事では、Excel VBAを用いてワークブックの特定のシートだけをPDFで保存する方法について解説します。さらに、応用例を取り上げ、より実用的なスキルを身につけるための手引きを提供します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な手順

1. VBAエディタを開く。
2. 対象となるシートを指定するコードを書く。
3. 指定したシートをPDFとして保存するコードを追加する。

以下に、具体的なコードとその解説を示します。


Sub SaveSheetAsPDF()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") 'シート名"Sheet1"を指定
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\your\file.pdf"
End Sub

このコードでは、ワークブック内の”Sheet1″という名前のシートを指定し、それをPDFとして指定したパスに保存しています。`ExportAsFixedFormat`メソッドは、ワークシートをPDFやXPSとして保存する際に使用されます。

応用例1: 複数のシートを一つのPDFとして保存


Sub SaveMultipleSheetsAsPDF()
    Dim wsArray() As String
    wsArray = Array("Sheet1", "Sheet2")
    ThisWorkbook.Sheets(wsArray).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\your\multi_sheet_file.pdf"
End Sub

このコードでは、”Sheet1″と”Sheet2″の2つのシートを一つのPDFとして保存します。

応用例2: 保存する際の品質を指定する


Sub SaveSheetWithQuality()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\your\file.pdf", Quality:=xlQualityStandard
End Sub

このコードでは、`Quality`パラメータを使用して保存するPDFの品質を指定しています。`xlQualityStandard`は標準品質での保存を意味します。

応用例3: 特定の範囲だけをPDFで保存


Sub SaveRangeAsPDF()
    Dim rng As Range
    Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:D10")
    rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\your\range_file.pdf"
End Sub

上記のコードは、”Sheet1″のA1からD10までの範囲だけをPDFとして保存します。

まとめ

Excel VBAを使用すると、特定のシートや範囲をPDFとして簡単に保存できます。基本的な手順から応用例まで、さまざまな方法で自動化を強化し、日常業務を効率化することが可能です。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次