Excel VBAでデータベースのクエリ結果をPDFで出力する方法

Excel VBAを使用して、データベースのクエリ結果をPDFとして出力する技術は、業務上非常に便利です。この記事では、その基本的な手法から、より高度な応用例まで詳しく解説します。具体的なコードとその解説を通じて、初心者から中級者までの読者が実践的な知識を深めることができるようになっています。

目次

Excel VBAの基本

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

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

基本的な手法

ExcelのVBAを使用して、データベースから取得したクエリ結果をPDFとして出力する際の基本的な手法について説明します。


Sub ExportQueryResultToPDF()
    Dim Conn As Object
    Dim Rs As Object
    Dim Query As String
    Dim ws As Worksheet

    ' 接続設定
    Set Conn = CreateObject("ADODB.Connection")
    Conn.Open "Provider=...;Data Source=...;User ID=...;Password=..."

    ' クエリ実行
    Query = "SELECT * FROM TableName"
    Set Rs = Conn.Execute(Query)

    ' 結果をワークシートに出力
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    ws.Cells.Clear
    For i = 1 To Rs.Fields.Count
        ws.Cells(1, i).Value = Rs.Fields(i - 1).Name
        ws.Cells(2, i).Resize(Rs.RecordCount).Value = Application.Transpose(Rs.GetRows()(i - 1))
    Next i

    ' PDFで保存
    ws.ExportAsFixedFormat Type:=xlTypePDF, FileName:="Path\To\Save\Result.pdf"

    Rs.Close
    Conn.Close
End Sub

上記のコードは、指定したデータベースからデータを取得し、その結果をワークシートに出力した後、PDFとして保存するものです。必要に応じて接続文字列やクエリ、保存先のパスを変更してください。

応用例

1. 特定の条件を持つデータのみをPDF出力


Query = "SELECT * FROM TableName WHERE ConditionColumn = 'ConditionValue'"

上記のようにクエリ内にWHERE句を追加することで、特定の条件を持つデータのみを取得しPDFで出力することが可能です。

2. 複数のワークシートにクエリ結果を出力

複数のクエリを実行し、それぞれの結果を異なるワークシートに出力する場合の例です。


' クエリ1の結果をSheet1に出力
Query = "SELECT * FROM Table1"
ExportToWorksheet Query, "Sheet1"

' クエリ2の結果をSheet2に出力
Query = "SELECT * FROM Table2"
ExportToWorksheet Query, "Sheet2"

3. グラフを含むPDFとしての出力

Excelの機能を利用して、クエリ結果をもとにグラフを作成し、そのグラフを含むPDFを出力する方法です。


' クエリ結果をベースにグラフを作成
Set Chart = ws.Shapes.AddChart2(251, xlColumnClustered).Chart
Chart.SetSourceData ws.Range("A1:B10")

' PDFで保存
ws.ExportAsFixedFormat Type:=xlTypePDF, FileName:="Path\To\Save\ResultWithChart.pdf"

まとめ

Excel VBAを使用してデータベースのクエリ結果をPDFで出力する方法は、様々な業務やシチュエーションで役立ちます。この技術をマスターすることで、効率的かつ柔軟にデータを取り扱い、その結果を視覚的に共有することが可能となります。

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

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

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

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

コメント

コメントする

目次