Excel VBAとMySQLを連携して情報共有を加速しよう!
はじめに
日々の業務で、大量データの管理やリアルタイムな情報共有に困っていませんか?
そんな課題を解決してくれるのが、「Excel VBA」と「MySQL」の連携です!
今回は、ExcelからMySQLに接続し、データベースを自在に扱う方法をわかりやすく紹介します。
なぜMySQLを使うのか?
- 無償・オープンソース
- 数千の同時接続をサポート
- Windows / Linux / MacOSで動作
- Webサービスとの高い連携性
- 世界中のコミュニティによるサポート
MySQLは、個人から大規模システムまで幅広く活用できる、非常に頼もしいデータベースです!
MySQL Community Edition 公式サイトはこちら
Excel VBA との連携方法
1. ADO (ActiveX Data Objects) を使った接続
VBAからデータベースに接続するには、「ADOライブラリ」を使います。
設定はとても簡単!
ADOライブラリ設定手順
- Excelで
Alt + F11
を押してVBAエディタを開く - [ツール] → [参照設定] をクリック
- 「Microsoft ActiveX Data Objects x.x Library」にチェック(バージョンは最新推奨)
- [OK] を押す
これでVBAからADOが使えるようになります!
2. ODBCドライバーのインストールと設定
ExcelとMySQLをつなぐには、ODBCドライバーも必要です。
- 使用ドライバー:
MySQL ODBC 8.0 Unicode Driver
- 接続設定(DSN)の作成も忘れずに!
接続文字列の例
Driver={MySQL ODBC 8.0 Unicode Driver}; Server=localhost; Database=eng001u; User=db_user; Password=db_user; Option=3;
3. VBAからの接続コード例
Dim conn As Object Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=eng001u;User=db_user;Password=db_user;Option=3;" conn.Open
たったこれだけで、VBAからMySQLにアクセスできるようになります!
MySQL 基本操作ガイド
データベース作成
まずはデータベースを作成しましょう。
CREATE DATABASE eng001u DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
テーブル作成
次に、データを保存するテーブルを作成します。
CREATE TABLE user_master ( id CHAR(16) NOT NULL PRIMARY KEY, name TEXT, pass TEXT, mail TEXT, rights INT );
データ追加
作成したテーブルに、データを登録してみます。
INSERT INTO user_master (id, name, pass, mail, rights) VALUES ('user000', '三田 さや', 'pas000', 'user00@gmail.com', 0); INSERT INTO user_master (id, name, pass, mail, rights) VALUES ('user001', '須田 翼', 'pas001', 'mail01@gmail.com', 1);
ユーザー作成と権限追加
続いて、Excel VBAなど外部アプリケーションから安全にアクセスするために、
専用のデータベースユーザーを作成し、必要な権限を付与します。
ユーザー作成
CREATE USER 'db_user'@'%' IDENTIFIED BY 'db_user';
ここで、
'db_user'
はユーザーID'%'
はどのホストからでも接続可能にする設定'db_user'
はパスワードです
権限付与
作成したユーザーに、特定データベース(例:eng001u
)への操作権限を付与します。
GRANT ALL ON eng001u.* TO 'db_user'@'%';
これで、db_user
はデータベースeng001u
のすべてのテーブルに対して、 SELECT・INSERT・UPDATE・DELETE などの操作ができるようになります。
ユーザー一覧確認
作成したユーザーは、次のコマンドで確認できます。
SELECT user, host FROM mysql.user;
ユーザーの削除(必要に応じて)
不要になったユーザーは削除できます。
DROP USER 'db_user'@'%';
Excel VBAとMySQL連携のメリットまとめ
- 二重入力の削減
- リアルタイムで情報共有
- 大量データの高速演算
- 強力なバックアップ体制
- 複数ユーザー同時利用
Excel単体では難しかったデータの一元管理が、MySQLとの連携によってグッと身近になります!
まとめ
Excel + VBA + MySQLの組み合わせは、
業務効率化やデータ活用を大きく加速してくれる強力な武器です。
特に、
- データ量が増えてきた
- 複数人で共有管理したい
- リアルタイムに情報を反映させたい そんな悩みを持っている方におすすめです!
ぜひこの機会に、
「ExcelからMySQLへ接続する力」を身につけて、
あなたの業務をアップグレードしてみてください!
(補足)
もし要望があれば、
🔵 「実際にExcelからMySQLにデータを読み込むVBAコード例」
🔵 「レコード更新・削除処理」
🔵 「エラーハンドリングを付けたVBAコード例」
なども、追加でご紹介できますので、教えてくださいね!