パッケージ入力用 Excel ファイル

設計者 管理者

提出パッケージ定義では、フォームに替えて(あるいは追加して)データ入力に使用する Excel ファイルを登録することができます。 その Excel ファイルでは、[Excel-Link] の機能を用いて、データを取得し、反映することができます。また、 [Excel-Link] の標準的な機能に加えて、Excel ファイルを提出パッケージデータの入力に用いるため必要な機能がいくつか用意されています。

Excel 起動時の処理

具体的には [コントリビュータ] からパッケージ入力用 Excel ファイルを起動する際、以下の処理が自動的に実行されます:

  • [Excel-Link] アドインの自動組み込み

  • サーバ URL の自動設定

  • 前処理マクロの実行(1)- Workbook_Open マクロ

  • パラメータの自動埋め込み

  • 前処理マクロの実行(2)- Auto_Open マクロ

  • データ取得処理の実行、又は、前処理マクロの実行(3)- UserExit_OpenBook マクロ

それぞれについて、以下でご説明します。

[Excel-Link] アドインファイルが自動的にダウンロードされ、Excel に組み込まれます。したがって、[コントリビュータ] を用いる PC では、Microsoft Excel に事前に [Excel-Link] アドインを組み込んでおく必要はありません。また、異なるバージョンの [Excel-Link] アドインが組み込まれている場合には、fusion_place サーバプログラムのバージョンに適合したものに置換されます。

2. サーバ URL の自動設定

[Excel-Link] の「接続先の設定」における「サーバ URL」は、自動的に Excel 起動元の [コントリビュータ] の接続先サーバの URL に変更されます。

3. パラメータの自動埋め込み

[コントリビュータ] からパッケージ入力用 Excel ファイルを開くときに、開かれた Excel ファイルのシート上のセルに、種々のパラメータ値(実行時に値が決定されるデータ項目)が埋め込まれるようにすることができます。パラメータ項目の例としては、以下のようなものがあります:

  • アプリケーションのラベルや名称

  • 現在選択されている業務プロセスの属する会計年度や相対期間のラベルあるいは名称

  • 現在選択されているパッケージデータの提出元業務責任単位のラベルや名称

  • 現在選択されているパッケージデータを参照している業務責任単位のラベルあるいは名称

パラメータごとに決められた「名前」があります。パッケージ入力用に Excel ファイル内のいずれかのシートのセルにその名前を付しておくと、そのセルに値が埋め込まれます。すべてのパラメータを利用する必要はなく、必要なパラメータについてのみ、セルにその名前を付しておくことができます。例えば、アプリケーションラベルを埋め込みたいセルには「_PPR_APP_LABEL」という名前を付しておきます。

パラメータの一覧は、「パッケージ入力用 Excel ファイル パラメータ一覧」にあります。

パラメータの名前をセルに付す時には、以下の点に留意して下さい:

  • Excel での「名前」には適用範囲が二種類あります。具体的には、各シート内のみで有効な名前とブック全体を通して有効な名前の区別があります。パラメータの名前をセルに付す時には、ブック全体を通して有効な名前として下さい。

  • シートを保護するのであれば、パラメータの名前が付されたセルは「ロック」を外し、書き込み可能として置いて下さい。

  • セルに埋め込むラベルなどが数値と解釈可能な文字列である場合、パラメータの名前が付されたセルの書式設定で「表示形式」を「文字列」として下さい。そうしなければ、セットする文字列がゼロから始まる場合には、そのゼロが消去されてしまいます(例えば、ラベル「0091」が数値「91」として埋め込まれてしまいます)。

4. 前処理マクロの実行(1)(2)(3)

[コントリビュータ] からパッケージ入力用 Excel ファイルを開くときには、以下のマクロが自動実行されます:

  1. Workbook_Open マクロ (引数なし)

  2. Auto_Open マクロ (引数なし)

  3. FP_UserExit_OpenBook マクロ (引数なし)

いずれのマクロも、パッケージ入力用 Excel ファイルに含めなければならない、というものではありません。Workbook_Open マクロと Auto_Open マクロは、含まれていなければ単にそれぞれが実行されないだけです。FP_UserExit_OpenBook マクロは、含まれていなければ、代替処理として、次にご説明するデータ取得処理が実行されます(むしろ、データ取得処理だけでは不十分な場合に、代替処理を記述するのが、FP_UserExit_OpenBook マクロの利用目的です)。

Workbook_Open マクロは、パラメータの自動埋め込みの前に実行され、他の2つは、パラメータの自動埋め込みの後に、Auto_Open, FP_UserExit_OpenBook の順に実行されます。

これらのうち、Workbook_Open マクロと Auto_Open マクロが実行されるのは、Microsoft Excel の通常の仕様通りです。すなわち、Excel ファイルを、Microsoft Excel で直接開いたときにもこれら2つのマクロは実行されます。

これに対して、FP_UserExit_OpenBook マクロが実行されるのは、[コントリビュータ] からパッケージ入力用 Excel ファイルを開いた場合のみです。このマクロを利用すれば、[コントリビュータ] からパッケージ入力用 Excel ファイルを開く場合のみ実行したい処理を記述することができます。FP_UserExit_OpenBook マクロがない場合には、その実行は当然なされず、代わりに、データ取得処理(下記)が実行されます。

これらのマクロには、ユーザの応答を要求する処理を記述しないでください。MsgBox 関数や InputBox 関数の記述などがそれにあたります。そうした処理を記述した場合、[コントリビュータ] からパッケージ入力用 Excel ファイルを正しく開くことができません。

5. データ取得処理の実行

パッケージ入力用 Excel ファイルを開き、Workbook_Open マクロ及び Auto_Open マクロが含まれていればそれらが実行された後、アクティブシートに対して [Excel-Link] の通常のデータ取得処理が実行されます。ただし、上述した通り、FP_UserExit_OpenBook マクロが含まれていればそれが実行され、データ取得処理は実行されません。

データ反映時のパッケージ再計算

パッケージ入力用 Excel ファイルにて、データを反映した後に、パッケージに含まれるフォームによる計算処理(提出パッケージフォームでの計算結果の保存をご覧ください)が自動的に実行されるようにすることが出来ます。そのためには、パッケージ入力用 Excel ファイルに、以下の4つのパラメータセルを設けて下さい。

  • _PPR_APP_LABEL アプリケーションラベル

  • _PPR_VPT_LABEL 照会業務責任単位(※)のラベル

  • _PPR_CUR_LKEY 現在選択されている対象データの元帳版キー

  • _PPR_CUR_PKGKEY 現在選択されているパッケージのキー。

上記4つのセルすべてに適切な値がセットされている場合のみ、パッケージ再計算が実行されます。通常、これらのセル値は、[コントリビュータ] から Excel を起動した際に自動設定されます。

パッケージ再計算を実行する必要がない場合、「_PPR_CUR_PKGKEY」パラメータセルを設けないことをお勧めします。同パラメータセルはパッケージ再計算のためだけに使用されているため、同セルを設けないことで、他の機能に影響を与えず、パッケージ再計算を抑制することが出来ます。