【EXCEL VBA】MySQLからデータ取得したい

VBAからMySQLへ接続してデータ取得する方法を紹介します。Excel単体で動作確認できないので事前準備が大変かもしれません。(MySQLはXAMPPをエイヤッでインストールしてしまうのが一番楽かも)

まずは、MySQLのODBCドライバをインストールをします。以下サイトからダウンロードしてください。注意点は、Officeが32bit版ならばODBCも32bit。Officeが64bit版ならばODBCも64bit版をダウンロードする事です。

また、ADODBオブジェクトを利用しますので、メニューのツール(T) ー 参照設定(R)で「ActiveX Data Objects 6.1 Library」を有効化してください。

サンプルプログラム

特に解説は不要かと思います。DB接続をして、Select文でデータを引っ張ってくるのみです。データ参照方法も極めて普通ですね。悩みどころはないはずです。

Sub sample()
    Dim cn As New ADODB.Connection
    cn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};" & _
                          "Server=127.0.0.1;" & _
                          "Database=sample_db;" & _
                          "User=hogeuser;" & _
                          "Password=fugapassword"
    cn.Open

    Dim rs As New ADODB.Recordset
    rs.Open "select * from sample_table", cn
    
    Do Until rs.EOF
        Debug.Print rs("id") & ", " & rs("title") & ", " & rs("price")
        rs.MoveNext
    Loop

    rs.Close
    cn.Close
End Sub

出力例

74d84660, 充電ケーブル ライトニングケーブル ケーブル, 9999
b1d3c59d, 耐熱 手袋 キャンプグローブ レザーグローブ MLS301, 1150
b4da82fa, 大きいハンモック キャットランド 据え置き スリム設計 130, 6980
ba14dda6, トーチバーナー屋内とアウトドア用, 7980