Excel VBA から使用する ADO(ActiveX Data Objects) ADODB オブジェクトの主なメソッド

Excel VBA から使用する ADO(ActiveX Data Objects)、およびその中核である ADODB オブジェクトの主なメソッド について、初心者にもわかりやすく解説します。


目次

🔷 主要なADODBオブジェクトと主なメソッド

オブジェクト概要主なメソッド
ADODB.Connectionデータベースへの接続.Open, .Close, .Execute
ADODB.Recordsetクエリ結果の保持、データの読み書き.Open, .Close, .MoveNext, .AddNew, .Update, .Delete
ADODB.CommandSQLコマンドの実行(パラメータ付きも可).Execute
ADODB.Parameterパラメータクエリ用の値—(Commandと一緒に使う)

🧩 1. ADODB.Connection の主なメソッド

.Open

接続を開始する。

conn.Open ConnectionString

.Close

接続を終了する。

conn.Close

.Execute

SQL文を実行し、結果(必要に応じてレコードセット)を返す。

Set rs = conn.Execute("SELECT * FROM Users")

📄 2. ADODB.Recordset の主なメソッド

.Open

クエリの実行とレコードセットの取得。

rs.Open "SELECT * FROM TableName", conn, adOpenStatic, adLockReadOnly

.Close

レコードセットを閉じる。

rs.Close

.MoveNext, .MovePrevious, .MoveFirst, .MoveLast

レコード間の移動。

rs.MoveNext
If rs.EOF Then MsgBox "最後のレコードです"

.AddNew, .Update

レコードの追加・保存。

rs.AddNew
rs.Fields("Name").Value = "田中"
rs.Update

.Delete

現在のレコードを削除。

rs.Delete
rs.MoveNext ' 削除後の移動が必要

🧪 3. ADODB.Command の主なメソッド

.Execute

パラメータ付きSQLの実行などに使われる。

Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

With cmd
    .ActiveConnection = conn
    .CommandText = "SELECT * FROM Users WHERE ID = ?"
    .CommandType = adCmdText
    .Parameters.Append .CreateParameter("ID", adInteger, adParamInput, , 1001)
End With

Set rs = cmd.Execute

🛠 よく使う定数(adOpenStatic など)

定数説明
adOpenStatic取得時の状態を保持。スクロール可能
adLockReadOnly読み取り専用ロック
adCmdTextSQLテキストとして解釈することを明示

※定数を使うには参照設定で「Microsoft ActiveX Data Objects x.x Library」にチェック。


✅ よくある使い方の流れ

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

conn.Open "接続文字列"
rs.Open "SELECT * FROM Table", conn, adOpenStatic, adLockReadOnly

Do Until rs.EOF
    Debug.Print rs.Fields("Name").Value
    rs.MoveNext
Loop

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing

よかったらシェアしてね!
目次