VBAで使うADO(ActiveX Data Objects)とは?


**ADO(ActiveX Data Objects)**は、VBA(Visual Basic for Applications)で外部データベースにアクセスするための仕組みです。特に、ExcelからAccessやSQL Server、CSVファイルなどを操作したいときに非常に便利です。


ADOの主な用途

  • AccessやSQL Serverのデータベースを読み書き
  • ExcelやCSVファイルからデータを抽出・更新
  • 複数のデータソースを統合して活用

ADOを使うための準備

  1. VBE(Visual Basic Editor)を開く
  2. メニューの「ツール」→「参照設定」
  3. 「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だけでは扱いきれない大量データや複雑な検索・更新処理を効率的に行うことができます。業務自動化やデータ分析をレベルアップさせたい方には、ぜひ習得してほしい技術です。


コメント

タイトルとURLをコピーしました