Excel Services UDF についてUnderstanding Excel Services UDFs

ユーザー定義関数 (UDF) は、Excel の計算とデータのインポート機能を拡張するカスタム関数です。開発者は、以下を提供するカスタム計算パッケージを作成します。User-defined functions (UDFs) are custom functions that extend the calculation and data-import capabilities of Excel. Developers create custom calculation packages to provide:

  • Excel に組み込まれていない関数Functions that are not built into Excel.

  • 組み込み機能のカスタム実装Custom implementations to built-in functions.

  • 古いまたはサポートされていないデータ ソースのカスタム データ フィード、およびアプリケーション固有のデータ フローCustom data feeds for legacy or unsupported data sources, and application-specific data flows.

ブックを作成するユーザーは、組み込みの関数を呼び出すのと同じように、たとえば「=MyUdf(A1*3.42)」などの数式を介して、セルから UDF を呼び出すことができます。Users who create workbooks can call UDFs from a cell through formulas—for example, "=MyUdf(A1*3.42)"—just like they call built-in functions.

Excel Services UDF は、マネージ コードで記述され、Microsoft SharePoint Server 2010 に配置されるカスタム関数を呼び出すため、セル内で数式を使用する機能を提供します。UDF は次の目的に作成できます。Excel Services UDFs give you the ability to use formulas in cells to call custom functions written in managed code and deployed to Microsoft SharePoint Server 2010. You can create UDFs to:

  • カスタムの数学関数を呼び出すCall custom mathematical functions.

  • カスタム データ ソースからデータを取得してワークシートに入力するGet data from custom data sources into worksheets.

  • UDF から Web サービスを呼び出すCall Web services from the UDFs.

マネージ コード UDF の作成Creating Managed-Code UDFs

Excel Services マネージ コード UDF を作成する簡単な方法は、Microsoft Visual Studio 2005 クラス ライブラリ テンプレートを使用することです。マネージ コード UDF プロジェクト内で、Microsoft.Office.Excel.Server.Udf.dll という Excel Services UDF ダイナミック リンク ライブラリ (DLL) を参照する必要があります。An easy way to create an Excel Services managed-code UDF is to use the Microsoft Visual Studio 2005 class library template. You will need to reference the Excel Services UDF dynamic link library (DLL), named Microsoft.Office.Excel.Server.Udf.dll, in your managed-code UDF project.

Microsoft.Office.Excel.Server.Udf.dll は、Microsoft.NET Framework 2.0 を使用してコンパイルされました。Visual Studio 2003 を使用してマネージ コード UDF を作成する場合は、 Microsoft.Office.Excel.Server.Udf.dll を参照できなくなります。古いバージョンの .NET Framework で作成されたアセンブリで .NET Framework 2.0 によって作成されたアセンブリを参照することはできません。Microsoft.Office.Excel.Server.Udf.dll has been compiled using Microsoft .NET Framework 2.0. If you use Visual Studio 2003 to create your managed-code UDF, you will not be able to reference Microsoft.Office.Excel.Server.Udf.dll. It is not possible for an assembly created with an older version of the .NET Framework to reference an assembly created with .NET Framework 2.0.

必須の属性Required Attributes

Excel Services UDF クラスとしてクラス内のカスタム関数を使用するには、UDF クラスを Microsoft.Office.Excel.Server.Udf.UdfClass 属性でマークする必要があります。UDF アセンブリにおいてこの属性でマークされていないクラスはすべて、Excel Calculation Services によって無視されます。これらは Excel Services UDF クラスとしてみなされないためです。To use custom functions in a class as an Excel Services UDF class, you must mark your UDF class with the Microsoft.Office.Excel.Server.Udf.UdfClass attribute. Any classes that are not marked with this attribute in the UDF assembly will be ignored by Excel Calculation Services. They are not considered to be Excel Services UDF classes.

Excel Services UDF メソッドとしてクラス内のカスタム関数を使用するには、UDF メソッドを Microsoft.Office.Excel.Server.Udf.UdfMethod 属性でマークする必要があります。UDF アセンブリにおいてこの属性でマークされていないメソッドはすべて無視されます。これらは Excel Services UDF メソッドしてみなされないためです。To use custom functions in a class as Excel Services UDF methods, you must mark your UDF methods with the Microsoft.Office.Excel.Server.Udf.UdfMethod attribute. Any methods that are not marked with this attribute in the UDF assembly will be ignored because they are not considered to be Excel Services UDF methods.

Microsoft.Office.Excel.Server.Udf.UdfMethod属性には IsVolatile プロパティがあります。 IsVolatile プロパティを使用すると、UDF メソッドを volatile または nonvolatile に指定できます。 IsVolatile プロパティはブール値 (Boolean) をとります。既定値は false で、特定の UDF メソッドが不揮発であることを意味します。The Microsoft.Office.Excel.Server.Udf.UdfMethodattribute has an IsVolatile property. You use the IsVolatile property to specify a UDF method as volatile or nonvolatile. The IsVolatile property takes a Boolean value. The default value is false, which means that particular UDF method is nonvolatile.

Microsoft.Office.Excel.Server.Udf.dll の場所Location of Microsoft.Office.Excel.Server.Udf.dll

SharePoint Server 2010 がインストールされているコンピューターの次の場所に、Microsoft.Office.Excel.Server.Udf.dll のコピーがあります。On the computer where you have installed SharePoint Server 2010, you can find a copy of Microsoft.Office.Excel.Server.Udf.dll at:

[drive:]\\Program Files\\Common Files\\Microsoft Shared\\web server extensions\\14\\ISAPI

配置とセキュリティDeployment and Security

配置場所の種類Deployment Location Type

UDF アセンブリは、ローカル ディレクトリ、グローバル アセンブリ キャッシュ、またはネットワーク共有に置くことができます。 ファームのシナリオでは、ローカル ディレクトリのパスはファーム全体で同じである必要があります。UDF assemblies can reside in a local directory, global assembly cache, or network share. In a farm scenario, the local directory path must be identical across the farm.

UDF アセンブリの識別Identification of UDF Assemblies

UDF アセンブリの ID は、呼び出す Excel Calculation Services のアセンブリの完全なパスまたは厳密な名前を使用すると公開できます。You can expose the identity of a UDF assembly by using the full path or strong name of the assembly for Excel Calculation Services to call.

たとえば、以下を使用できます。For example, you can use:

  • C:\UDFs\MySampleUdf.dllC:\UDFs\MySampleUdf.dll

  • \\MyNetworkServer\UDFs\MySampleUdf.dll\\MyNetworkServer\UDFs\MySampleUdf.dll

  • CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38

UDF アセンブリの有効化Enabling UDF Assemblies

UDF アセンブリは、既定では無効です。UDF assemblies are disabled by default.

それぞれの Excel Services の信頼できる場所には、AllowUdfs フラグが設定されています。Each Excel Services trusted location has an AllowUdfs flag.

注意

AllowUdfs フラグは、[Excel Services: 信頼できるファイル保存場所] ページにある [許可されたユーザー定義関数] オプションによって示されます。The AllowUdfs flag is denoted by the User-defined functions allowed option on the Excel Services Trusted File Locations page. [信頼できるファイル保存場所] ページへの移動方法については、「ステップ 3: UDF を展開して有効化する」を参照してください。To learn how to navigate to the Trusted File Locations page, see Step 3: Deploying and Enabling UDFs.

AllowUdfs の既定値は false です。特定の信頼できる場所で AllowUdfs の値を false に設定すると、その信頼された場所にあるブックは UDF の呼び出しが許可されません。The default AllowUdfs value is false. If the AllowUdfs value is set to false in a particular trusted location, the workbooks in that trusted location are not allowed to call UDFs.

特定の信頼できる場所からの UDF の呼び出しを許可するには、 AllowUdfs の値を true に設定します。In order to allow UDFs to be called from a specific trusted location, you set the AllowUdfs value to true.

この信頼できる場所に UDF の呼び出しがあるブックでセッションが開始したときに AllowUdfs の値が false である場合、UDF の呼び出しは失敗します。セッションが開始した後に AllowUdfs の値を true に変更しても、UDF の呼び出しは失敗します。これは、 AllowUdfs フラグの変更は、構成データベースが更新された後、次回のセッションで有効になるためです。If the AllowUdfs value is false when a session is started on a workbook that has UDF calls in this trusted location, the UDF calls will fail. If you change the AllowUdfs value to true after a session has started, the UDF calls will also fail. This is because changes in the AllowUdfs flag take effect on the next session, after the configuration database has been updated.

UDF アセンブリの実行を許可するAllowing UDF Assemblies to Run

管理者は、UDF アセンブリを実行する場合、すべての UDF アセンブリを登録してから、信頼できる場所で AllowUdfs フラグを true に設定して、ブックが UDF を呼び出せるようにします。If administrators want to allow UDF assemblies to run, they have to register all UDF assemblies, and enable workbooks to call UDFs by setting the AllowUdfs flag to true in the trusted locations.

UDF アセンブリの再読み込みReloading a UDF Assembly

UDF アセンブリを再読み込みするには iisreset を実行するか、Excel Calculation Services アプリケーション ドメインを再起動します。To reload a UDF assembly, you can run iisreset or restart the Excel Calculation Services application domain.

注意: IIS をリセットすると、現在のセッションはすべて終了します。Caution: Resetting IIS will end all current sessions. > 詳細については、「UDF を有効にする方法」を参照してください。> For more information, see How to: Enable UDFs.

詳細については、「Unloading an Application from Memory」 (アプリケーションをメモリからアップロードする) (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csvr2002/htm/cs_mmc_administering_myhj.asp)) を参照してください。For more information, see Unloading an Application from Memory (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csvr2002/htm/cs_mmc_administering_myhj.asp).

UDF アセンブリの既定コード アクセス セキュリティのアクセス許可Default Code Access Security Permission for UDF Assemblies

既定では、UDF アセンブリを完全信頼で実行します。By default, UDF assemblies run with full trust.

UDF アセンブリ用のコード アクセス セキュリティのアクセス許可を制限するRestricting Code Access Security Permission for UDF Assemblies

特定の UDF アセンブリを完全信頼で実行しないようにするには、その UDF アセンブリに対するコード アクセス セキュリティのアクセス許可を明示的に制限する必要があります。コード グループを構成し、アクセス許可を制限するには, .NET Framework 2.0 構成ツールを使用します。If you do not want a particular UDF assembly to run with full trust, you must explicitly restrict code access security permission for that UDF assembly. You can configure the code groups and restrict permission by using the .NET Framework 2.0 Configuration tool.

開発者は、コード内で RequestMinimum メソッドおよび RequestOptional メソッドを使用して、UDF アセンブリが必要以上のアクセス許可を得ないようにすることもできます。Developers can also use the RequestMinimum and RequestOptional methods in their code to ensure that their UDF assemblies don't get more permission than they require.

コード グループの構成、および RequestMinimum メソッドと RequestOptional メソッドについて、詳細は MSDN の以下の記事を参照してください。For more information about configuring code groups, as well as the RequestMinimum and RequestOptional methods, see the following articles on MSDN:

関連項目See also

タスクTasks

方法: Web サービスを呼び出す UDF の作成How to: Create a UDF That Calls a Web Service

方法: 場所を信頼するHow to: Trust a Location

例外をキャッチする方法How to: Catch Exceptions

UDF を有効にする方法How to: Enable UDFs

概念Concepts

チュートリアル: マネージ コード UDF を開発するWalkthrough: Developing a Managed-Code UDF

Excel Services UDF に関するよく寄せられる質問Frequently Asked Questions About Excel Services UDFs

Excel Services のアーキテクチャExcel Services Architecture

Excel Services のアラートExcel Services Alerts

Excel Services の既知の問題およびヒントExcel Services Known Issues and Tips

Excel Services のベスト プラクティスExcel Services Best Practices