「外部データの取り込み」機能を使って取り込まれた情報は、シート上の埋め込みオブジェクトの1つ(QueryTableオブジェクト)として扱われる。
QueryTableオブジェクトを追加する
Sub 新規クエリテーブルの作成()
Dim myQT As QueryTable
Dim conSTR As String, strSQL As String
'接続文字列
conSTR = "OLEDB;" & _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\mdb\4-sampleDB.mdb"
'取り込むテーブル
strSQL = "社員"
'新規QueryTableオブジェクトを追加
Set myQT = ActiveSheet.QueryTables.Add(conSTR, Range("A1"), strSQL)
With myQT
.Name = "VBA社員" 'QueryTableの名前
.CommandType = xlCmdTable '読み込む内容がテーブルであることを指定
.Refresh '設定に従ってデータ取り込み
End With
End Sub
新規に外部データを埋め込むには、QueryTablesコレクションに対してAddメソッドを使用する。
新規QueryTableオブジェクトを追加する
シート.QueryTables.Add (Connection, Destination, Sql)
| 引数 | 説明 |
|---|---|
| Connection | 接続文字列を指定 |
| Destination | 結果を返す(埋め込む)セルを指定 |
| Sql | 取り込みたいテーブル名、クエリ名、SQL文などを指定 |
Addメソッドの引数Connectionに使用する文字列は、先頭の「OLEDB;」と言う設定を追加する以外は、ADOのConnectionオブジェクトで使用する接続文字列と同じ。
実行結果

