Recordsetオブジェクトの結果をQueryTableオブジェクトで受け取る

Recordsetオブジェクトの結果をQueryTableオブジェクトで受け取る

Sub Recordsetと組み合わせる()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset
Dim myFile As String

myFile = ThisWorkbook.Path & "\mdb\4-sampleDB.mdb"

'接続
With myCon
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .Open myFile
End With

'「社員」テーブルの内容を読み込む
myRS.Open "社員", myCon

'クエリテーブルを作成
With Sheets("クエリテーブルVBA2").QueryTables.Add(myRS, Range("A1"))
  .Name = "VBA_QT"
  .Refresh
End With

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub

QueryTableオブジェクトとADOのRecordsetオブジェクトは、組み合わせて使用することも可能。
QueryTableオブジェクトを経由させることにより、フィールド名の書き出しや、書き出したセル範囲に「名前」をつける処理、セル幅の自動調整などの処理が容易になる。

実行結果