Excel VBAを使用して、データベースのクエリ結果をPDFとして出力する技術は、業務上非常に便利です。この記事では、その基本的な手法から、より高度な応用例まで詳しく解説します。具体的なコードとその解説を通じて、初心者から中級者までの読者が実践的な知識を深めることができるようになっています。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な手法
ExcelのVBAを使用して、データベースから取得したクエリ結果をPDFとして出力する際の基本的な手法について説明します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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出力
1 2 3 |
Query = "SELECT * FROM TableName WHERE ConditionColumn = 'ConditionValue'" |
上記のようにクエリ内にWHERE句を追加することで、特定の条件を持つデータのみを取得しPDFで出力することが可能です。
2. 複数のワークシートにクエリ結果を出力
複数のクエリを実行し、それぞれの結果を異なるワークシートに出力する場合の例です。
1 2 3 4 5 6 7 8 9 |
' クエリ1の結果をSheet1に出力 Query = "SELECT * FROM Table1" ExportToWorksheet Query, "Sheet1" ' クエリ2の結果をSheet2に出力 Query = "SELECT * FROM Table2" ExportToWorksheet Query, "Sheet2" |
3. グラフを含むPDFとしての出力
Excelの機能を利用して、クエリ結果をもとにグラフを作成し、そのグラフを含むPDFを出力する方法です。
1 2 3 4 5 6 7 8 |
' クエリ結果をベースにグラフを作成 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講座が表示されます。
-
【初心者向け】パワークエリ入門:ETLツールを使ってエクセルデータを簡単に整形・統合しよう!(1/11)
-
【実践ガイド】パワークエリでデータ収集:Excel、CSV、PDF、Webデータを簡単に取り込む方法をマスターしよう!(2/11)
-
【総力特集】パワークエリで列操作をマスター:選択、変更、移動、削除、結合、分割の詳細解説&実践テクニック!(3/11)
-
【徹底解説】パワークエリで行操作をマスター!フィルター・保持・削除テクニックと練習用エクセルで実践学習(4/11)
-
パワークエリでデータクレンジング: 文字列結合、0埋め、テキスト関数をマスター(5/11)
-
パワークエリで四捨五入、切り捨て、切り上げをマスターする方法(6/11)
-
パワークエリで効率的なデータグループ化を実現する方法(7/11)
-
パワークエリで時間と日付の計算をマスター!便利な関数を使って効率アップ(8/11)
-
パワークエリで条件別集計をマスターする方法(9/11)
-
Excelパワークエリでクロス集計表とデータベース形式を瞬時に変換する方法(10/11)
-
Excelパワークエリ入門: 効率的なデータ整理をマスターしよう!(11/11)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント