Excel: VBAからデータベースに接続する 準備


Excel VBA から データベースに接続する方法です。 (Excel から VBA を使わずにデータを取得・表示する方法もあります。 例: Windows, Excel: データベースから直接値を取得して表示する)

環境

  • Excel 2016
  • Microsoft ActiveX Data Objects 2.8 Library

ADO

まず、データベースに接続するために ADO を設定します。 ADO とは、 ActiveX Data Object の略で、 データベースに接続するための機能の集合体です。 データベースにはいくつか種類がありますが、 ADO は データベースの種類にかかわらず統一的に操作できるよう配慮されていま す。

Visual Basic エディタ の参照設定で、 ADODB を追加しましょう。

Excel の Visual Basic エディタ を開きます。

Visual Basic for Applications のエディタから、 「ツール」→「参照設定」をクリックします。

ダイアログが出るので、 Microsoft ActiveX Data Objects Library の一番新しいものを選択します。 ここでは “2.8” を選択しました。

「OK」をクリックして VBA に戻ると、 ADODB が使えるようになっているはずです。

接続の基本

データベースに接続するときの基本のコードフォーマットです。

cn.Open のところでデータベースに接続しています。 ここでエラーが出る場合、接続できていません。

接続先のデータベースによって、接続設定を変更する必要があります。

接続設定

ADODB を使ってデータベースに接続する場合の接続設定を書きましょう。

ODBC を設定している場合

ODBC を設定している場合はとても簡単に接続設定が書けます。 設定方法は “Windows: PostgreSQL の ODBC を設定する” に記載しています。

作成した ODBC 設定 の名前を使って "DSN=odbc_name;" のように書けば OK です。 Excel内で作成した接続名ではなく、 ODBCの接続名です。

直接接続設定を書く

すべてを ConnectionString の中に書きます。 ここに ConnectionString のサンプルを掲載します。 さらに詳しいことは MSDN などを参考にしてください。

PostgreSQL
MySQL