MESCIUS SPREAD for Windows Forms 17.0J
GetCustomFunctionEnumerator メソッド (SheetView)

このシートのモデル内のユーザー定義のカスタム関数(FunctionInfoオブジェクト)の 名前を列挙するIEnumeratorを取得します。
構文
'Declaration
 
Public Function GetCustomFunctionEnumerator() As IEnumerator
public IEnumerator GetCustomFunctionEnumerator()

戻り値の型

カスタム関数の列挙子を含む IEnumerator オブジェクト
解説

数式でのカスタム関数の使用の詳細については、「関数リファレンス」を参照してください。

次のサンプルコードでは、このメンバを使用して、シートに含まれるユーザー定義のカスタム関数(Functionオブジェクト)の名前を列挙するIEnumeratorを返しています。
public class CubeFunctionInfo : FarPoint.CalcEngine.FunctionInfo
    {
      public override string Name { get { return "CUBE"; } }
      public override int MinArgs { get { return 1; } }
      public override int MaxArgs { get { return 1; } }
      public override object Evaluate (object[] args)
      {
        double num = FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]);
        return num * num * num;
      }
    }

public class MultiFunc : FarPoint.CalcEngine.FunctionInfo
    {
      public override string Name { get { return "MULTI"; } }
      public override int MinArgs { get { return 1; } }
      public override int MaxArgs { get { return 1; } }
      public override object Evaluate (object[] args)
      {
        double num = FarPoint.CalcEngine.CalcConvert.ToDouble(args[0]);
        return num * num;
      }
    }

System.Collections.IEnumerator se;
fpSpread1.ActiveSheet.AddCustomFunction(new CubeFunctionInfo());
fpSpread1.ActiveSheet.AddCustomFunction(new MultiFunc());
fpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)");
fpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)");
se = fpSpread1.ActiveSheet.GetCustomFunctionEnumerator();
listBox1.Items.AddRange(new Object[] {se.MoveNext().ToString(), se.Current.ToString(), se.MoveNext().ToString(), se.Current.ToString()});
Public Class CubeFunctionInfo
   Inherits FarPoint.CalcEngine.FunctionInfo

   Public Overrides ReadOnly Property Name() As String
   Get
   Return "CUBE"
   End Get
   End Property

   Public Overrides ReadOnly Property MinArgs() As Integer
   Get
   Return 1
   End Get
   End Property

   Public Overrides ReadOnly Property MaxArgs() As Integer
   Get
   Return 1
   End Get
   End Property

   Public Overrides Function Evaluate(ByVal args() As Object) As Object
   Dim num As Double = FarPoint.CalcEngine.CalcConvert.ToDouble(args(0))
   Return num * num * num
   End Function
End Class

Public Class MultiFunc
Inherits FarPoint.CalcEngine.FunctionInfo

Public Overrides ReadOnly Property Name() As String
   Get
   Return "MULTI"
   End Get
   End Property

   Public Overrides ReadOnly Property MinArgs() As Integer
   Get
   Return 1
   End Get
   End Property

   Public Overrides ReadOnly Property MaxArgs() As Integer
   Get
   Return 1
   End Get
   End Property

   Public Overrides Function Evaluate(ByVal args() As Object) As Object
   Dim num As Double = FarPoint.CalcEngine.CalcConvert.ToDouble(args(0))
   Return num * num
   End Function
End Class

Dim se As System.Collections.IEnumerator
FpSpread1.ActiveSheet.AddCustomFunction(New CubeFunctionInfo())
FpSpread1.ActiveSheet.AddCustomFunction(New MultiFunc())
FpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)")
FpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)")
se = FpSpread1.ActiveSheet.GetCustomFunctionEnumerator()
ListBox1.Items.AddRange(New Object() {se.MoveNext().ToString(), se.Current().ToString(), se.MoveNext().ToString(), se.Current().ToString()})
参照

SheetView クラス
SheetView メンバ

開発者ガイド

カスタム関数の作成

 

 


© MESCIUS inc. All rights reserved.