この記事では、Excel VBAを利用してデータベースの特定のカラムの統計情報を取得し、Excelに自動で出力する手法について詳しく説明します。具体的なVBAコードの例、その詳細解説、および応用例を3つ取り上げ、初心者から中級者までが理解できるように解説します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な手順とVBAコード
データベースから統計情報を取得するための基本的なVBAコードを以下に示します。
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 GetDatabaseStatistics() Dim conn As Object Dim rs As Object Dim strSQL As String 'データベースへの接続設定 Set conn = CreateObject("ADODB.Connection") conn.Open "YOUR_CONNECTION_STRING" 'SQL文で特定のカラムの統計情報を取得 strSQL = "SELECT AVG(column_name), MAX(column_name), MIN(column_name) FROM table_name" Set rs = conn.Execute(strSQL) 'Excelに結果を出力 Worksheets("Sheet1").Cells(1, 1).Value = "Average" Worksheets("Sheet1").Cells(1, 2).Value = rs.Fields(0).Value Worksheets("Sheet1").Cells(2, 1).Value = "Max" Worksheets("Sheet1").Cells(2, 2).Value = rs.Fields(1).Value Worksheets("Sheet1").Cells(3, 1).Value = "Min" Worksheets("Sheet1").Cells(3, 2).Value = rs.Fields(2).Value 'オブジェクトの解放 rs.Close Set rs = Nothing conn.Close Set conn = Nothing End Sub |
このコードは、指定されたデータベースのカラムの平均、最大値、最小値を取得し、それをExcelのSheet1に出力します。
コードの詳細解説
1. conn
とrs
は、データベース接続および結果セットを保持するための変数です。
2. CreateObject("ADODB.Connection")
を使用してデータベースに接続します。YOUR_CONNECTION_STRING
は適切な接続文字列に置き換えてください。
3. SQLクエリstrSQL
は、指定のカラムの平均、最大値、最小値を取得します。
4. conn.Execute(strSQL)
を用いて、SQLクエリを実行し、結果をrs
に格納します。
5. 最後に、取得した結果をExcelのワークシートに出力します。
応用例
応用1: 複数のカラムの統計情報を取得
特定のテーブル内の複数のカラムの統計情報を一度に取得する方法を紹介します。
1 2 3 4 |
' SQL文で複数のカラムの統計情報を取得 strSQL = "SELECT AVG(column1_name), AVG(column2_name) FROM table_name" |
このようにSQLクエリを修正することで、複数のカラムの平均値を同時に取得できます。
応用2: 条件を絞って統計情報を取得
特定の条件を満たすデータだけを対象に統計情報を取得する方法を紹介します。
1 2 3 4 |
' SQL文で条件を指定して統計情報を取得 strSQL = "SELECT AVG(column_name) FROM table_name WHERE condition_column = 'some_value'" |
ここでは、condition_column
がsome_value
を持つデータのみを対象に、平均値を取得します。
応用3: 結果を異なるシートに出力
取得した統計情報を異なるシートに出力する方法を紹介します。
1 2 3 4 |
' 結果をSheet2に出力 Worksheets("Sheet2").Cells(1, 1).Value = "Average" |
このようにシート名を変更することで、取得した統計情報を任意のシートに出力できます。
まとめ
Excel VBAを使用してデータベースの特定のカラムの統計情報を取得し、それをExcelに出力する方法について学びました。基本的なコードからさまざまな応用例まで、実際の業務で役立つ知識を習得することができました。この技術を利用して、日々の業務をより効率的に進めることが可能となります。
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)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント