**ADO(ActiveX Data Objects)**は、VBA(Visual Basic for Applications)で外部データベースにアクセスするための仕組みです。特に、ExcelからAccessやSQL Server、CSVファイルなどを操作したいときに非常に便利です。
ADOの主な用途
- AccessやSQL Serverのデータベースを読み書き
- ExcelやCSVファイルからデータを抽出・更新
- 複数のデータソースを統合して活用
ADOを使うための準備
- VBE(Visual Basic Editor)を開く
- メニューの「ツール」→「参照設定」
- 「Microsoft ActiveX Data Objects 2.x Library」にチェックを入れる
※通常は「2.8」が推奨されます
ADOの基本構成
ADOでよく使う主なオブジェクトは以下の通りです。
オブジェクト名 | 説明 |
---|---|
Connection |
データベースへの接続を管理 |
Recordset |
データの取得・操作を行う |
Command |
SQL文の実行に使う(オプション) |
ADOの基本的な使い方(サンプルコード)
Sub ADO_Sample()
Dim conn As Object
Dim rs As Object
Dim sql As String
' 接続の作成
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\user\Documents\sample.accdb"
' データ取得
sql = "SELECT * FROM 顧客テーブル"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sql, conn
' データをExcelに出力
Dim i As Long
i = 1
Do Until rs.EOF
Cells(i, 1).Value = rs.Fields("名前").Value
Cells(i, 2).Value = rs.Fields("住所").Value
rs.MoveNext
i = i + 1
Loop
' 終了処理
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
注意点
- 64bit版Officeではドライバ(ACE.OLEDBなど)が必要な場合があります
- セキュリティ設定により接続が制限されることがあります
- 外部データの操作は慎重に!更新系のSQLには特に注意
まとめ
VBAでADOを使うことで、Excelだけでは扱いきれない大量データや複雑な検索・更新処理を効率的に行うことができます。業務自動化やデータ分析をレベルアップさせたい方には、ぜひ習得してほしい技術です。
コメント