VBAでデータを扱うときに「ADO」という言葉を見かけることがあります。 しかし初心者にとっては、
- 何ができるのか
- どんな場面で使うのか
- どう書けばいいのか
が分かりにくいことも多いです。
この記事では、ADOの基本からVBAでの役割、実務での活用場面までをわかりやすく解説します。
1. ADOとは何か?
ADO(ActiveX Data Objects)とは、 👉 VBAからデータベースにアクセスするための仕組み(ライブラリ)です。
簡単に言うと、
VBAとデータベースの橋渡しをする技術
です。
Excel単体では扱いにくい大量データや外部DBの情報を、SQLを使って高速に取得・更新できるようになります。
2. VBAにおけるADOの役割
ADOを使うと、VBAで次のような操作が可能になります。
■ 主な役割
- データベースへ接続する
- SQLを実行する
- データの取得(SELECT)
- データの追加・更新・削除(INSERT / UPDATE / DELETE)
つまり、
👉 Excelを“簡易データベースツール”として使えるようになる
というのがADOの大きな特徴です。
3. ADOで扱える主なデータベース
ADOはさまざまなデータソースに接続できます。
| データソース | 説明 |
|---|---|
| Access | 最もよく使われる組み合わせ |
| SQL Server | 社内システムで多い |
| Oracle | 大規模システムで利用 |
| Excelファイル | 実はSQLで操作可能 |
| CSV | データベースのように扱える |
Excelだけで完結しない業務に強いのがポイントです。
4. ADOを使うメリット
① 高速にデータを扱える
Excelのセルを1つずつループするより、 👉 SQLで一括取得する方が圧倒的に高速
② SQLが使える
抽出・並び替え・集計などを簡単に実現できます。
<sql>
SELECT * FROM 社員マスタ WHERE 部署 = '営業'
③ Excel以外のデータとも連携できる
AccessやSQL Serverなど、外部DBと直接やり取りできます。
5. ADOの基本構成(重要)
ADOは主に次の3つのオブジェクトで構成されます。
① Connection(接続)
データベースとの接続を管理します。
<vba>
Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
② Command(命令)
SQL文を実行するためのオブジェクト。 ※省略されることも多い
③ Recordset(結果)
SQLの実行結果を扱います。
<vba>
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
6. VBAでの基本的な使い方(サンプル)
Accessデータベースからデータを取得する例です。
<vba>
Sub ADOサンプル()
Dim conn As Object
Dim rs As Object
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
'接続
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\sample.accdb;"
'SQL実行
rs.Open "SELECT * FROM 社員マスタ", conn
'データ取得
Do Until rs.EOF
Debug.Print rs.Fields("社員名").Value
rs.MoveNext
Loop
'クローズ
rs.Close
conn.Close
End Sub
初心者でも理解しやすい、最小構成のADOコードです。
7. ADOの主な活用場面(実務でよく使う)
■ ① 大量データの高速処理
- 数万件のデータを一括取得
- 条件抽出をSQLで実行 👉 Excelのループより圧倒的に速い
■ ② データベース連携
- 社員マスタの取得
- 売上データの更新
- 在庫情報の取得 👉 社内システムとの連携に最適
■ ③ ExcelをDBとして扱う
ExcelファイルもSQLで操作できます。
<sql>
SELECT * FROM [Sheet1$]
別ファイルのExcelからデータ抽出が可能。
■ ④ CSVデータの読み込み
CSVをデータベースのように扱い、
- 条件抽出
- 並び替え
が簡単にできます。
8. DAOとの違い(補足)
| 項目 | ADO | DAO |
|---|---|---|
| 対象 | 幅広いDB | Access中心 |
| 柔軟性 | 高い | やや限定 |
| 推奨 | 現行向け | レガシー寄り |
👉 基本的にはADOを使えばOK
9. まとめ
ADOとは、 👉 VBAからデータベースを操作するための仕組み です。
■ ポイント整理
- DB接続・操作が可能になる
- SQLで柔軟にデータ処理できる
- 大量データ処理に強い
- Excel以外のデータとも連携可能
■ こんな人におすすめ
- VBAで大量データを扱う人
- Excel処理を高速化したい人
- データベースと連携したい人
コメント