MESCIUS SPREAD for Windows Forms 17.0J
数式の概要

セルまたはセル範囲に数式を設定できます。行または列に、数式を設定することもできます。数式は数式表現を意味する文字列であり、通常は関数、演算子、および定数を組み合わせて構成されます。

数式の設定

コードで数式を設定するには、対象の行を表すRow、列を表すColumn、またはセルを表すCellオブジェクトのFormulaプロパティを設定します。

行または列に数式を設定すると、既定の数式を割り当てたことになります。設定した数式は、行または列のすべてのセルに適用され、対象の行または列の先頭セルが基準の位置として使用されます。数式が相対セル参照を使用する場合、数式の評価は、セルごとに異なる結果となります。

たとえば、A列に相対セル参照を使用した数式「C1+D1」を設定した場合、A1セルには数式「C1+D1」、A2セルには「C2+D2」、A3セルには「C3+D3」と、数式は、列内のセルに、相対的にコピーされます。A列のすべてのセルで、C1とD1の合計値(他の行のC列およびD列の値は含まない)が評価されるようにするには、絶対セル参照を使用して「$C$1+$D$1」とする必要があります。セル参照を使用する数式のサンプルについては、「セル参照スタイル」を参照してください。

サンプルコード

次のサンプルコードの最初の数式では、A1セルに5を掛けた積を求め、この結果を別のセルに表示します。

次の数式は、A1からA4セルの合計をD列に設定します。数式は、相対セル参照「A1:A4」を含みます。そのため、D列のすべてのセルに、数式が相対的にコピーされます。

C#
コードのコピー
fpSpread1.ActiveSheet.Cells[2, 0].Formula = "PRODUCT(A1,5)";
fpSpread1.ActiveSheet.Columns[3].Formula = "SUM(A1:A4)";
Visual Basic
コードのコピー
FpSpread1.ActiveSheet.Cells(2, 0).Formula = "PRODUCT(A1,5)"
FpSpread1.ActiveSheet.Columns(3).Formula = "SUM(A1:A4)"
ユーザーによる数式の入力を許可

ユーザーに数式の入力を許可できます。詳細は「数式入力の許可」を参照してください。

値のデータ型

数式が参照するセルのセル型に注意してください。また、数式に使用するデータを割り当てるとき、CellオブジェクトのTextまたはValueプロパティのどちらを使用するのかも注意が必要です。Textプロパティを使用してセルデータを割り当てると、割り当てられた文字列はセル型に基づき、必要なデータ型に解析されます。たとえば数値型セルでは、文字列は倍精度データ型として解析されます。Valueプロパティを使用すると、シートは割り当てられたオブジェクトをそのまま受け入れ、解析は行われません。文字列を割り当てた場合、文字列のまま設定されます。一部の数値関数(SUMなど)は、セル範囲内の数値以外の値を無視します。たとえば、セル範囲A1:A3に{1, "2", 3}という値が設定されている場合、数式SUM(A1:A3)の評価結果は4となります。これは、SUM関数が"2"という文字を無視するためです。数式の計算に使用されるすべてのセルには、正しい値を正しいデータ型で設定する必要があります。

数式内の特殊文字

数式内の文字列定数には、改行文字('\n')などの特殊文字を使用できます。数式のテキスト表現では、文字列定数を引用符で囲むことに注意してください。

サンプルコード

次のサンプルコードは、複数行テキストを表示するセルを作成し、改行文字を含む文字列定数を表す数式を割り当てます。

C#
コードのコピー
TextCellType ct = new TextCellType();
ct.Multiline = true;
fpSpread1.Sheets[0].Cells[0, 0].CellType = ct;
fpSpread1.Sheets[0].Cells[0, 0].Formula = "\"line1\nline2\"";
Visual Basic
コードのコピー
Dim ct As New TextCellType()
ct.Multiline = True
FpSpread1.Sheets(0).Cells(0, 0).CellType = ct
FpSpread1.Sheets(0).Cells(0, 0).Formula = """line1" & vbLf & "line2"""

数式の接尾辞と接頭辞の空白文字を保持するには、ReserveFormulaWhiteSpaces 列挙体を使用します。 空白文字には、スペース、Enter、改行などのさまざまな文字を含めることができます。

サンプルコード

このサンプルコードは、数式に空白文字を保持する方法を示します。

C#
コードのコピー
IWorkbook workbook = fpSpread1.AsWorkbook();  
IWorksheet sheet1 = workbook.Worksheets[0];
            
sheet1.Cells["A1"].Value = 1;
sheet1.Cells["A2"].Value = 1;

fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures |= CalcFeatures.ReserveFormulaWhiteSpaces;
sheet1.Cells["C1"].Formula2 = "NOW(    )";
sheet1.Cells["C2"].Formula2 = "SUM(   Sheet1!A1:A2   )";
fpSpread1.AllowUserFormulas = true;
VB
コードのコピー
Dim workbook As IWorkbook = fpSpread1.AsWorkbook()
Dim sheet1 As IWorksheet = workbook.Worksheets(0)
            
sheet1.Cells("A1").Value = 1
sheet1.Cells("A2").Value = 1
            
fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures Or CalcFeatures.ReserveFormulaWhiteSpaces
sheet1.Cells("C1").Formula2 = "NOW(    )"
sheet1.Cells("C2").Formula2 = "SUM(   Sheet1!A1:A2   )"
fpSpread1.AllowUserFormulas = True
数式エディタの使用

設計時に、数式バーまたは数式エディタを使用してセル内に数式を入力できます。いずれもSPREADデザイナから利用できます。数式エディタは、[プロパティ]ウィンドウからも利用できます。詳細については「SPREADデザイナガイド」の「数式の入力」を参照してください。数式の作成に使用可能な関数および演算子の詳細については、「関数リファレンス」を参照してください。

  1. 数式を入力するセルが含まれるシートのシート タブを選択します。
  2. シート内のセルまたはセル範囲を選択します。
  3. Formula プロパティの矢印ボタンをクリックします。 これで、数式エディタが開きます。
  4. 数式エディタでは、編集ボックスに数式を入力できます。 数式に関数を簡単に入力するには、関数名をダブルクリックすると、この関数が編集ボックスに入力されます。 関数は、カテゴリ別に分類されています。 また、演算子と定数を入力して数式を作成することもできます。
  5. 作成が完了したら、〈適用〉をクリックします。 〈OK〉をクリックし、エディタを終了します。
  6. SPREAD デザイナで作業している場合は、[ファイル]メニューから[適用して終了]を選択し、変更をコンポーネントに適用して SPREAD デザイナを終了します。
参照

 

 


© MESCIUS inc. All rights reserved.