Volatile関数および配列引数

引数が静的な(値がシミュレーション中に変化しない)ユーザー定義関数は、その関数のVolatileプロパティが設定されていなければ、最高速モードでは呼び出されません。

ユーザー定義関数が最高速モードで検出されると、Crystal Ballでは、まずその関数がVolatileであるかどうかをチェックします。Crystal BallがVBAプロジェクトへのアクセスを拒否され、ユーザー定義関数が配列引数またはセル範囲引数を渡していない場合、Crystal Ballはその関数をVolatileとして処理します。

プロジェクトへのアクセスが拒否され、呼出しで配列引数またはセル範囲引数を渡している場合、次のメッセージが表示されます:

配列引数のあるユーザー定義関数を解釈できません。最初にMicrosoft Excelのマクロのセキュリティ設定ダイアログで「Visual Basicプロジェクトへのアクセスを信頼する」チェック・ボックスを選択する必要があります。このエラーの詳細は、ユーザーズ・ガイドの付録Cを参照してください。

原因: Microsoft ExcelのVolatileプロパティが設定されていません。

ToolPakはMicrosoft Excel 2007以降に直接埋め込まれているため、Analysis ToolPakに関連する配列引数または他の引数に、このような特定の問題が発生することはありません。

ただし、「Visual Basicプロジェクトへのアクセスを信頼する」プロパティを設定するには、次の手順に従って、Volatileプロパティが正しく設定されていることを確認します:

  1. Officeボタンをクリックします。

  2. 次の順序でボタンおよびリンクをクリックします: 「Microsoft Excelのオプション」「セキュリティ センター」「セキュリティ センター設定」「マクロの設定」

  3. 「マクロの設定」ページの「開発者向けのマクロ設定」で、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」を選択します。