ある意味でよくある話ですが、「データベースサーバーの情報をエクセルで見たい」という要望をいただきます。

この「データベース」が何なのかにもよりますが、原則的にはそのデータベースサーバーにあった ODBC ドライバをそのパソコンに入れて設定した上で、エクセルから外部データ呼び出しを行うことになります。

仮に「データベース=MySQL」という前提で、この手順を紹介します。

まずはデータベースサーバーに合った ODBC ドライバが必要です。MySQL であればこちらからダウンロードします:
MySQL :: Download Connector/ODBC

Zip 版と Msi 版があります。どちらでもいいのですが Msi 版であればダウンロードしたものをダブルクリックすればインストーラーが起動して簡単なのでこちらがおススメです。

また 32bit 版と 64bit 版があります。使っている Windows にあった方を選んでダウンロードするのですが、よく分からない場合はとりあえず 64bit 版を選んでみて、インストール時に「環境があってない」といった旨のメッセージが出る場合は改めて 32bit 版を選ぶ、という方法もあります。

インストーラが起動したら基本的には全て Next や「はい」を選んで標準インストールします。

これで ODBC ドライバのインストールは完了です。MySQL 以外のデータベースを使っている場合は若干異なる所もありますが、正しい ODBC ドライバを入手してインストール、という点では全て共通です。


次に導入した ODBC ドライバを使ってデータソースを定義します。簡単に言うと、目的のデータベースサーバー上のデータに接続するための設定を行います。

コントロールパネルを起動して、 管理ツール > データソース(ODBC) を選びます:
2014111101


「ODBC データソース」管理のダイアログが開きます。「ユーザーDSN」タブの「追加」ボタンをクリックします:
2014111102


新規に追加するデータソースで使うドライバ(接続先の種類)を選びます。先程インストールした ODBC ドライバから選択します。MySQL の場合は "ANSI Driver" と "Unicode Driver" の2つが導入されているはずですが、ここでは "ANSI Driver" を選択(データに UTF-8 の日本語が含まれている場合はこちら)して「完了」ボタン:
2014111103


MySQL の接続先に関する情報を入力するダイアログが表示されます。Data Source Name には接続先を識別するための名前を入力します。Description はその説明ですが空欄でも構いません。MySQL サーバーがリモートの場合は TCP/IP Server: でその IP アドレスやホスト名を指定します。ポート番号は特に変更していない限りは 3306 のままで大丈夫です。そしてデータベースに接続するためのユーザー名とパスワードを入力。ここまでの指定内容が正しければ、その下の Database セレクションボックスの中に、この MySQL サーバーにこのユーザーからアクセスできるデータベースの一覧が入っているので、そこから実際に接続するデータベースを選びます:
2014111104


ここまで指定できたら「Test」ボタンをクリックします。全ての情報が正しければ "Connection Successful" というメッセージが表示され、データベースに正しく接続できたことが分かります。「OK」ボタンをクリックして1つ前の画面に戻ります:
2014111105


先程の画面に、いま作成したデータソースが追加されたことが確認できるようになったはずです。これでデータソースの追加もできました:
2014111106


ここまでの設定ガできていれば、後はエクセル上での作業になります。エクセルを起動し、データを表示したいワークシートを開いた状態で、メニューの データ > 外部データの取り込み > その他のデータソース取り込み > データ接続ウィザード を選択します(エクセルのバージョンによっては データ > 外部データの取り込み > データの取り込み > 新しいデータソースへの接続):
2014111108


データ接続ウィザードが表示されます。まずデータソースの種類として "ODBC DSN" を選択します:
2014111109


次に ODBC データソースを指定します。先ほど作成した "MySQL" (作成したデータソースの名前)を指定します:
2014111110


データソースの情報に基づいて情報を取得し、データベースとその中のテーブルの選択画面に移ります。エクセル内での表示に使いたいデータベースとテーブルを選択します:
2014111111


テーブル内のデータをキーワード検索で絞り込みたい場合などはここでキーワードの指定などを行うこともできます。ここまでの指定ができたら「完了」ボタンをクリックします:
2014111112


最後にどのような方法で指定データをインポートするかを指示します。普通にテーブルとしてインポートするのか、ピボットテーブルとしてインポートするのか、既存のワークシートの特定位置に入れるのか、新規にワークシートを作成するのか、といった指定を行います:
2014111113


すると指定内容に従った形で MySQL サーバーのデータがエクセルにインポートされます。インポート後はエクセルデータとして利用できるので、例えばグラフ化などもエクセルでの作業として簡単に行えます:
2014111114


なお、この設定を行ったエクセルシートを保存して再度開いた場合にセキュリティ警告が表示されることがあります。この警告が表示された場合、保存した際のシートの情報は残っていますが、データベースサーバーとの接続は切れています。保存後にデータベースに追加したり変更された情報はエクセル上では反映されていません:
2014111112


データベースサーバーの最新情報を取り込みたい場合はメニューの データ > すべて更新 を選択します。これで該当シート内のデータはデータベース内の最新情報に更新されます:
2014111113