MBSプラグインのXL機能を使ってみた。-FileMakerからExcelファイルを操作する機能-

2020年03月10日 10:33 AM

ファイルメーカーのTips


今回は、FileMaker プラットフォームで使用できる海外製のPluginの「MBSプラグイン」について、紹介したいと思います。
このプラグインは、FileMaker (ファイルメーカー)でカスタム App を開発している人の間では、とても人気のあるプラグインの一つです。
アップデートも頻繁にされている老舗のプラグインですので、安心して使えます。

では、なにができるのかというと、なんでもできちゃうと言いたくなるほど、機能が多いです。

 

 □■  MBSプラグインのXL機能とは?  ■□

 

今回は、XL機能を試してみたいと思います。
これは、FileMaker からExcelファイルを操作する機能です。

よく、「 FileMaker のシステムから、複雑なエクセルを書き出したい」という要望がありますが、要望の詳細を聞けば聞くほど、
「FileMaker のデフォルト機能では、複雑なエクセルは作成できないんです」
と、答えないといけない場合があります。

しかし、このプラグインの機能を使用すれば、さまざまなExcelの作成が、FileMaker から実行できます。

 

<注意点>
エクセルファイルを作成・編集できるLibXLというC++のライブラリがありますが、MBSプラグインのXL機能は、このライブラリを使用しているので、LibXLのライセンスも必要になります。

 

MBSプラグインも、LibXLライブラリも、お試しできますので、下記のようなことを試してみました。

 

 □■  XL機能で試した機能  ■□

 

カスタム App の数字フィールドの値を、グラフなどが設定されたエクセルファイルの特定のセルに設定をしていくことを試しました。

 

 

 □■  MBSプラグインのXL関数  ■□

 

プラグインが有効な場合、計算式の指定画面で、MBS Plug-Inというカテゴリが追加されていて、そこにMBS関数が追加されています。
この関数を使用していきます。

プラグインの計算式を評価させることで、プラグインの機能が実行できます。
計算式が評価されればいいので、フィールド設定や変数の設定ステップで、プラグインの関数を評価させましょう。

MBSプラグインの「LibXL」

 

 

 

■□ スクリプトの流れ □■

 

サンプルを作成してみました。スクリプトはだいたい下記のような流れで実現できました。

  1. 初期化

      • 変数を設定 [ $XL.Initialize ; 値: MBS( “XL.Initialize”; $LibPath ) ]
        ($libPath変数にパスを設定しておく)

     

  2. オリジナルExcelファイルを読み込む

      • 変数を設定 [ $XL.LoadBook ; 値: MBS(“XL.LoadBook”;$path) ]
        ($libPath変数に、セルの値が空欄のExcelファイルのパスを設定しておく)

     

  3. 読み込んだExcelファイルのセルに値を設定する

    • 変数を設定 [ $収入源 1 ; 値: MBS( “XL.Sheet.CellWriteNumber”; $XL.LoadBook; 0; 17; 2; 個人予算表::収入源 1 ) )]
        • 構文:MBS( “XL.Sheet.CellWriteNumber”; bookRef; sheetIndex; Row; Column; Value { ; Format } )
        • bookRef:2で設定した$XL.LoadBookを指定(読み込んだオリジナルExcelファイル)
        • sheetIndex:シート番号(0から始まるため、1シート目は0を指定)
        • Row:エクセルの行(0から始まるため、18行目は、17を指定)
        • Column:エクセルの列(0から始まるため、0 = A, 1 = B, 2 = Cとなる)
        • Value:セルに設定したい値(フィールド値を指定)

       

  4. フィールド設定

      • フィールド設定 [ 個人予算表::ExportFile_g ; MBS( “XL.Book.Save”; $XL.LoadBook; “test.xls” ) ]
      • オブジェクトフィールドに、編集したエクセルファイルを保存する。

     

  5. エクスポート

      • フィールド内容のエクスポート [ 個人予算表::ExportFile_g ; ・・・ ]
      • オブジェクトフィールドに保存したファイルをエクスポートする。

     

 

■□ まとめ □■

 

今回は、かんたんなファイルを使用して、実験しました。
MBSプラグインを使用することで、かなり自由度の高いエクセルファイルの操作ができます。
セルに値を設定するだけではなく、画像をエクセルに貼り付けたり、エクセルに貼り付けてある画像を FileMaker に読み込んだりまで。
興味のある方は、いろいろ試してみてください。

 

 

■□ サンプルファイルについて □■

サンプルファイルのダウンロードは下記リンクからできます。
samplefile_mbs_xl.zip (119KB)

サンプルファイルを使用するには、下記からプラグインとライブラリの取得が必要です。
どちらも試用できるので、下記のように設定して試してみてください。

・MBSプラグイン
https://www.monkeybreadsoftware.com/filemaker/
ダウンロード後、FileMaker にインストールしてください。

・LibXL(excel library for developers)
https://www.libxl.com/
ダウンロード後、サンプルファイルのフォルダの [SampleFile/libxl] フォルダに、
Macは、「libxl.dylib」ファイル、Windowsは、「libxl.dll」を配置してください。