[VBA]AccessからExcelにデータをインポートする方法 (ADO編)
ADO(ActiveX Data Object)という仕組みを使うと、これを実現できます。
ADOを使う準備
ExcelのVBE(Visual Basic Editor)の画面で、ADOの参照設定をします。Excel VBAコードを書く
下記のようにマクロを書きます。
Sub get_data()
Dim myPath As String
Dim myProvider As String
Dim mySrc As String
myPath = "C:\~\サンプル.mdb"
myProvider = "Provider=Microsoft.Jet.OLEDB.4.0;"
mySrc = "Data Source=" & myPath & ";"
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open myProvider & mySrc
rs.Open "テーブル名またはクエリ名", cn
Range("a1").CopyFromRecordset rs
End Sub
マクロを実行すると、Excel上にAccessのデータが展開されます。
ADOとは何か?
ADOというものが一体何なのか、最初はよくわからないと思います。そいういう場合は、無理に理解する必要はなく、上記のようにやるとVBAからAccessのデータをいじれるとだけ覚えておけばよいと思います。
感覚的には、FSO( File System Object )と似ているかもしれません。
FSOを使うと、VBAからPC上のフォルダやファイルを操作することができます。
同じように、ADOを使うと、VBAからデータベース上のデータを操作することができます。