【FileMaker】もうエクスポートはしない。ExcelからFileMakerのデータを持ってくる!

今年もやってきました、Advent Calendar。
私の番では、FileMaker Pro 16を中心にお送りします。
と言っても、あまりバージョンを意識しなくても実装できるものが多いので、記事を読んだ後は是非とも実装してみてくださいね。

今日は、FileMakerを意識せずに、FileMakerのデータをExcelに取り込む、というタイトルです。
FileMakerからデータをエクスポートするのはFileMaker屋さんがするっと考えることですが、そうでないIT屋さんやExcel屋さん(あえてIT屋さんと切り離しました)は、FileMakerは敷居が高いのではないでしょうか?

そこで、Excelに標準搭載されているODBCデータインポート機能を使ってFileMakerのデータを取得しよう、ということになります。
かつ、今回は、FileMaker Serverを使わずに、PCで使っているFileMaker ProのデータをそのままExcelに持ってきます。

前提条件

今回の用意するものは、以下になります。
・Windows PC
・Excel(ODBCデータインポート機能がついているバージョンであれば大丈夫かと)
・FileMaker Pro
・FileMaker ODBC

Windowsと限定したのは、理由があります。
それは、

Windows版のExcelでないと、FileMakerの現バージョンが扱えない

ためです。
Excel for Macは、fp7拡張子のFileMaker 11以前のものでないと扱えません。
この辺は、Microsoftになんとかしてもらいたいのですが、そんなこと言ってると進まないので今回はWindowsで環境を整えました。

ODBCの準備

異なるDBとのやりとりを実現する手段として、ODBCが選択肢として挙げられます。
今回は、FileMakerのインストールメディアで提供されいてるODBCドライバを使います。
Windowsへのインストール方法は、ODBCとJDBCガイド をご覧ください。
このPDFの13ページに、「ODBC クライアントドライバのインストール (Windows)」とあります。

すでにODBCをインストール済みの場合は、作業なしです。

FileMakerファイルのアカウント準備

アクセスするFileMakerのファイルで、ODBCからのアクセス用のアカウントを作成します。
このアカウントを使って、接続します。
このアカウントでは、「ODBC/JDBCによるアクセス」という権限を付与しておいてください。
これがないと、アクセスがはねられます。
1201_1.png

ODBCデータソース(DSN)を作成する

Windowsに標準で装備されている、ODBCデータソースアドミニストレーターを使って、DSNを設定していきます。
PCにログインしている人が全員使える、システムDSNで今回は作成します。
1201_2.png

FileMakerのドライバを選択します。
1201_3.png

次へボタンで、設定を続けます。
1201_4.png

DSNの名前を適当につけます。
1201_5.png

今回は、同一PC内にあるFileMakerからデータを取得するので、localhostのまま、続けます。
1201_6.png

アクセスするFileMakerファイル名を指定します。
1201_7.png

最後に、テストボタンが出てきます。
FileMakerのファイルを立ち上げ、先ほどFileMakerで設定したアカウントのid,passを指定して、FileMakerにアクセスできることを確認してください。
1201_8.png

うまくいきましたか?
1201_9.png

FileMakerからデータを取得する

では、やっとFileMakerからExcelにデータを取り込みます。
まずは、FileMakerのファイルを開いておいてください。

FileMakerのファイルが閉じている場合、ODBC接続をした時に次のキャプチャのようなODBCエラーが発生して、データの取得に進めません。
1201_19.png

では、FileMakerのファイルを開いたところで、続きです。
Excelの「データ」タブで、「ODBCから」をクリックし、先ほど設定したデータソースを選択します。
1201_10.png

FileMakerで設定したアカウント情報で、接続します。
1201_11.png

アクセスに成功すると、どのデータをダウンロードするか、ナビゲーターが表示されます。
ダウンロードするテーブルを選択します。
今回は、KEN_ALLというテーブルになります。
1201_12.png

データのプレビューが出てくるので、「読み込み」ボタンをクリックします。
1201_13.png

データ、きました!
1201_14.png

取得するデータの条件を設定する

テーブル全部のデータを取得する、というのは、実は稀なんではないでしょうか?
例えば、月別データやエリア別データなど、欲しいデータの条件を設定したいですよね?

ODBCデータ取得をマクロ登録してみると、普通に「読み込む」だけだとselect allしているのがわかります。
1201_15.png

なので、ステップアップとして条件を指定してデータを取得してみます。
データをプレビューした時に、「読み込み」ボタンの横に「編集」というボタンがあります。
1201_16.png
これを、クリックします。

例えば、東京都のデータのみを抽出する場合です。
このように、Excelを使っていればよくみるフィルター機能を使って条件を指定できます。
1201_17.png
条件を指定し終わったら、「閉じて読み込む」をクリックして、取り込みます。

東京都データ、きましたね!
1201_18.png

いかがでしたでしょうか?
今回のこの実装をマクロ化してボタンにしておくと、一発で欲しいデータが取得できますよ。
FileMakerを使い慣れなくても、FileMakerのデータを活用できますので、ぜひやってみてください。