共有するファイルを扱う場合はデータをAccessに(2) VBAの場合
2016/06/11
[ad#top-1]
Accessの使い方についてはここでは書きません。ググってもらえれば確認できるかと思います。今回はAccessで保存したデータをExcelVBA側で読み込む方法について書きたいと思います。
まずは、Accessには次のようにデータを保存したとします。フィールド名は「名前」「年齢」「出身地」の3つで以下のようにデータを保存しています。
ここからVBAでデータを参照するわけですが、その前にVisual Basic Editorの設定が必要になります。「ツール」-「参照設定」を選択し、
以下のようなウィンドウが現れたら、「Microsoft ActiveX Data Objects 2.x Library」を選んでください。もっとも項番の大きいものを選んだ方が無難でしょう。Windows7 + Office2010の場合は2.8を選んでいます。※6.1もありますが本来はこれを選ぶべきだった??
で、プログラミングです。以下はデータベースを読み込むコードとなります。
Set myCon = CreateObject(“ADODB.Connection”)
myCon.Open _
“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database2.accdb”
Set myRS = CreateObject(“ADODB.Recordset”)
myRS.Open “名簿”, myCon, adOpenForwordOnly, adLockOptimistic
myRS.Filter = “年齢>=30” ‘・・・(1)
r = 3
Do While Not myRS.EOF
Cells(r, 1) = myRS.Fields(“名前”).Value
Cells(r, 2) = myRS.Fields(“年齢”).Value
Cells(r, 3) = myRS.Fields(“出身地”).Value
r = r + 1
myRS.MoveNext
Loop
myRS.Close
Set myRS = Nothing
myCon.Close
Set myCon = Nothing
End Sub
このマクロをコールすると以下のような結果となります。ちなみにAccessに保存されているはずの「山田太郎」さんのデータが現れていませんが、これは、(1)で年齢を30歳以上というフィルターをかけているからです。
とりあえず、VBAはこんな感じです。
[ad#ad-1]
スポンサーリンク