Excel VBAとMySQLを連携して情報共有を加速しよう!


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ライブラリ設定手順

  1. ExcelでAlt + F11を押してVBAエディタを開く
  2. [ツール] → [参照設定] をクリック
  3. 「Microsoft ActiveX Data Objects x.x Library」にチェック(バージョンは最新推奨)
  4. [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コード例」
なども、追加でご紹介できますので、教えてくださいね!


よかったらシェアしてね!
目次