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