Excel VBAで簡易SQLクライアントを作成してみた(Excelでデータベースに接続)

ふとExcel VBAを使ったMySQLへの接続を試していないことを思い出したので、試してみることに。というわけで、早速ネットで情報収集を開始。

Excel VBAを使ってデータベースに接続する方法にはいくつかのやり方があるようで、私はそのうちのADOによる接続方法を試してみることにした。

ODBCドライバとデータソースはこれまでの間にすでにインストール&設定済みなので、あとはExcel VBAでコーディングするだけ。とは言え、VBAは今までほとんど書いたことがなかったので、少し時間がかかってしまった。

で、いつもならばselect文を発行して結果が抽出できれば満足して終わりなのだが、Excel上からMySQLのデータベースの更新もできれば便利かもと思い、Excel VBAの勉強を兼ねてさらに試行錯誤すること数時間。

そうしてできたのが、下図のようなもの。

null値を判定できなかったため、null値と空文字(または0)を区別できないが、エラーは一応ちゃんと取得できている(っぽい)。

接続文字列は外部ファイルに定義して、Excel VBAを書き換えなくても済むようにしてみた。接続してみたのはMySQLだけだが、接続したいデータベースのODBCドライバとデータソースをインストール&設定すれば、おそらく他のデータベースでも利用可能だと思われる。

というわけで、とりあえず完成。成果物はこちら