非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Excel/VBAでMySQLにアクセスする方法

      2022/12/14

前回、WindowsにMySQL用のODBCドライバをインストールしたことについて書きました。今回はExcelVBAからMySQLにアクセスしてみたいと思います。

 

MySQL側はこうなっています。適当にテーブル作ったものです。

 

こちらがソースコード。SELECT文でカラム名とレコードを読み込んでシートに展開します。

Sub ConnectToMySQL()
    Dim cn As New ADODB.Connection
    cn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};" & _
                          "Server=192.168.10.102;" & _
                          "Database=bookmarks;" & _
                          "User=TEST;" & _
                          "Password=****"
    cn.Open

    Dim rs As New ADODB.Recordset
    rs.Open "SELECT * FROM bookmark", cn
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    'カラム名をワークシート1行目に書き込む
    Dim i As Long, j As Long
    i = 1
    For j = 1 To rs.Fields.Count
        ws.Cells(i, j) = rs(j - 1).Name
    Next j

    'レコードをワークシートに書き込む
    Do Until rs.EOF
        i = i + 1
        For j = 1 To rs.Fields.Count
            ws.Cells(i, j) = rs(rs(j - 1).Name)
        Next j
        rs.MoveNext
    Loop

    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing
End Sub
 

 

 

上のプログラムを実行すると以下のようになります。うまく行きました。

 

 

あとはSELECT文のところをINSERTやUPDATEにすることで書き込みもできるようになります。

 

スポンサーリンク

 - Excel, MySQL, VBA