MySQL ODBCドライバをインストール
https://dev.mysql.com/downloads/connector/odbc/
使うエクセルが2007(32bit)だったので、8.0を選択。
ODBCデータソースの設定
コントロールパネルのODBCデータソースアドミニストレータ(32ビット)を使用して、MySQLの接続情報を設定
MySQLサーバーのIPアドレス、データベース名、ユーザー名、パスワードを入力
MySQL権限設定
VirtualBoxのMySQLに接続しようとしたけどエラー。
権限を設定しないといけない。
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON lightwill.* TO 'remoteuser'@'%';
FLUSH PRIVILEGES;
外部からアクセスできるユーザを作成。
SELECT, INSERT, UPDATE, DELETE の権限を付与。
反映。
エクセルマクロ(VBA)
Sub AccessMySQL() Dim conn As Object Dim rs As Object Dim strSql As String Dim strConn As String ' MySQLへの接続情報を設定 strConn = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.33.10;Database=lightwill;Uid=remoteuser;Pwd=password;" ' ADO Connectionオブジェクトを作成 Set conn = CreateObject("ADODB.Connection") ' 接続を開く conn.Open strConn ' SQLクエリを作成 strSql = "SELECT * FROM dp_comments order by id desc LIMIT 0, 30;" ' ADO Recordsetオブジェクトを作成 Set rs = CreateObject("ADODB.Recordset") ' RecordsetにSQLクエリの結果を格納 rs.Open sql, conn ' データをExcelに貼り付け Sheet1.Range("A1").CopyFromRecordset rs ' 接続を閉じる rs.Close conn.Close ' オブジェクトの解放 Set rs = Nothing Set conn = Nothing End Sub