フォームとスクリプトによる計算処理を Excel から依頼して (サーバー側で)実行できるようにする機能です。
設定にはマクロ記述を要さず、処理条件を記述した Excel シートをもとに容易に設定可能です。

1.処理の実行方法

以下の2つの方法でサーバー側計算処理を実行できます。

方法 処理内容の指示方法

a. 反映、取得と反映の実行後、サーバー側計算処理を実行します。
実行後のデータが、反映、取得と反映処理後のシートに表示されます。

サーバー側計算処理を実行したいシートごとに、そのシート名 +「_FPCTL1」という名の処理内容指示シートを設けます。
処理内容指示シートは非表示としても実行可能です。
処理内容指示テーブル起点セル(データ有無指定ヘッダーのセル)は A1 セルにする必要があります。

b. 反映、取得と反映とは関係なく、マクロからプロシージャを呼ぶことでサーバー側計算処理を実行します。

任意のシートの任意のセルを起点として処理内容指示テーブルを記述できます。
処理内容指示テーブルの起点セル(データ有無指定ヘッダーのセル)を引数としてプロシージャに渡します。

2.処理内容指示テーブル

処理内容指示テーブルは、特定のシート上の矩形のセル範囲である必要があります。
処理内容指示テーブルの1行目はヘッダー行とし、各列の内容を示すヘッダーを指定します。2行目以降は詳細行とし、処理実行指示を記述します。

処理内容指示テーブルの記述内容は以下の通りです。

項目 項目数 ヘッダー 詳細行の設定内容

データ有無指定

1

X

使用する行には任意の文字列を記します。
処理は 2 行目から進行し、本欄が空白の行が現れると、以降は処理されません。
本欄が空白でない行で、タイプ ~ 業務責任単位 いずれかの欄が空白ならば、その行はスキップして次の指示データ(右方向、次に下方向)を処理します。

タイプ

1

TYPE

フォームの場合、F
スクリプトの場合、S

アプリケーション

1

APPL

アプリケーションのラベル

アクション

1

ACTION

フォームまたはスクリプトのラベル

元帳版

1

EDITION

元帳版のキー(WORKSPACE等)

業務責任単位

1

PARTICIPANT

計算処理に使用する業務責任単位のラベル
[Excel-Link] を使用しているユーザーが実行権限を持っていることが必要です。

パラメータ値

n

「P:」+ディメンションラベル
例)
P:#FY
P:#SCENARIO

フォーム/スクリプトに与えるパラメーター値(メンバーラベル)をディメンションごとに指定します。

タイプ~パラメーター値の列は、横軸方向にも繰り返すことができます。
「TYPE」列は横方向に並べられた表の区切りを示します。
例えば、A1セルに「X」を指定した上で、A2セルに「TYPE」を指定、A3 セルには「APPL」を、と言う具合に列方向右向きに項目を並べ、さらにその右横に「TYPE」と記述することで別の表を始めることができます。

「TYPE」列以外の項目の並び順は順不同です。 処理内容指示テーブル内の大文字と小文字の区別は無視され、文字列前後の空白も無視されます。

3.処理の実行内容詳細

(a)反映、取得と反映の実行後に、サーバー側計算処理を自動実行させる場合

  1. 「データ反映」「データ取得・反映」処理を実行したときに、指定されたフォーム/スクリプトの処理が実行されます。
    「一括処理/データ反映」、「一括処理/データ取得・反映」でも同様です。

  2. 対応する処理内容指示シートがあるシートについてのみ当処理を実行します。

  3. 処理順序は以下の通りです。
     (1) 通常通りのデータ反映又はデータ取得・反映処理を実行
     (2) 処理内容指示テーブルに従ってフォーム/スクリプトによるサーバー側計算処理を実行
     (3) 処理後のデータを取得して Excel シート上のデータを最新化
     (4) コントリビュータから起動されたエクセルファイルについては(指定があれば)パッケージ再計算処理を実行
    処理後には処理内容指示テーブルに記載されたフォーム/スクリプト実行後の元帳データがエクセルシートに表示されます。
    なお、処理内容指示テーブルが存在したことによって付け加えられる処理は (2) と (3) となります。

  4. サーバー側の計算処理は、処理内容指示テーブルの内容を横方向優先で読み取り、実行します。
    複数の表がある場合は、横方向にすべての表の最初の詳細行の処理を実行し、その後、次の行の処理へ移ります。

  5. 途中でエラー/警告があった場合はそこで処理を中断し、メッセージを表示します。

(b)反映、取得と反映とは関係なく、マクロからプロシジャを呼ぶことで処理を実行する場合

プロシージャの仕様

プロシージャ名 内容 引数 返り値

FP_RunServerCalc

引数で指定された処理内容指示テーブルに従って、サーバー側計算処理を実行します。

TableRange As Range 処理内容指示テーブルの起点セル(データ有無指定ヘッダのセル)

(なし)

  1. 引数を指定して FP_RunServerCalc を実行します。

  2. エラーが生じた場合、VBA の Err がレイズされます。
    レイズされたエラーに関するメッセージ表示などの対応は呼び出し側で行う必要があります。