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

モデル内のユーザー定義関数の名前を列挙するIEnumeratorを取得します。
構文
'Declaration
 
Function GetCustomFunctionEnumerator() As IEnumerator
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;
      }
    }

FarPoint.Win.Spread.Model.ICustomFunctionSupport cfs;
System.Collections.IEnumerator se;
cfs = (FarPoint.Win.Spread.Model.ICustomFunctionSupport)fpSpread1.ActiveSheet.Models.Data;
cfs.AddCustomFunction(new CubeFunctionInfo());
cfs.AddCustomFunction(new MultiFunc());
fpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)");
fpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)");
se = cfs.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 cfs As FarPoint.Win.Spread.Model.ICustomFunctionSupport
Dim se As System.Collections.IEnumerator
cfs = FpSpread1.ActiveSheet.Models.Data
cfs.AddCustomFunction(New CubeFunctionInfo())
cfs.AddCustomFunction(New MultiFunc())
FpSpread1.ActiveSheet.SetFormula(1, 1, "CUBE(4)")
FpSpread1.ActiveSheet.SetFormula(2, 2, "MULTI(10)")
se = cfs.GetCustomFunctionEnumerator()
ListBox1.Items.AddRange(New Object() {se.MoveNext().ToString(), se.Current().ToString(), se.MoveNext().ToString(), se.Current().ToString()})
参照

ICustomFunctionSupport インタフェース
ICustomFunctionSupport メンバ

 

 


© MESCIUS inc. All rights reserved.