結合するために「外部データの取り込み」機能を使用する 2

「外部データの取り込み」機能を使って取り込まれた情報は、シート上の埋め込みオブジェクトの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オブジェクトで使用する接続文字列と同じ。

実行結果