PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > 数式 > セル参照スタイル |
数式には値、演算子、関数だけでなく、他のセル内の値への参照を使用することもできます。たとえば、セル参照を使用して、2つのセルの合計値を数式で計算できます。セル参照には、絶対セル参照(行と列で指定する実際の座標)と相対セル参照(現在のセルとの相対座標)を使用できます。
次の表は、セル参照を使用した数式の例です。
関数 | 説明 |
---|---|
SUM(A1:A10) | 1列目の1行から10行までのセル値を合計 |
PI( )*C6 | 円周率(π)にC6セルの値を乗算 |
(A1 + B1) * C1 | 最初の2つのセル内の値を加算し、その結果に3番目のセル値を乗算 |
IF(A1>5, A1*2, A1*3) | A1セルの値が5より大きければ、A1セル値に2を乗算。そうでなければA1セル値に3を乗算 |
シートに使用するセルの参照スタイルは、A1、またはR1C1形式のいずれかを選択できます。上の表の数式では、A1形式のセル参照が使用されています。セルの参照スタイルは、SheetViewクラスのReferenceStyleプロパティに、ReferenceStyle列挙体の値を使用して設定します。次のサンプルコードは、セルの参照スタイルをA1形式に設定しています。
C# |
コードのコピー
|
---|---|
fpSpread1.Sheets[0].ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1; |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.Sheets(0).ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1 |
セルの参照スタイルを変更したことで、変更後の参照スタイルで表現できない数式がある場合、この数式に疑問符を表示し、表現できないセル参照のプレースホルダとします。
たとえば、B1セル内の数式に使用する相対セル参照を RC[-1]+R[-1]C と定義すると、この数式は、左隣のセル(A1)値と上隣のセル(B0)値との加算として解釈されます。 「B0」セルは空白セルとみなされます。 このセル参照スタイルを A1 スタイルに変更すると、この数式は A1+B? と表示されます。これは、A1 スタイルでは「B0」セルを表現できないためです。 ただしこの場合でも、この数式の結果は R1C1 参照スタイルを使用した場合と同様に評価されます。
製品では、ほとんどの場合、行や列の参照は0から始まりますが、数式の作成では、1から始まる参照を使用する必要があります。つまり、先頭の列および行を表す番号はゼロ(0)ではなく、1となります。 |
開始行と終了行で、異なる参照スタイルを使用してセル範囲を参照することはできません。また、開始行と終了行で、絶対座標と相対座標を混在して使用することはできません。以下に例を示します。
参照 | 説明 |
---|---|
R1C[-1]:R5C[-1] | サポートされます(絶対行 : 絶対行) |
R1C[-1]:RC[-1] | サポートされません(絶対行 : 相対行) |
RC[-1]:R5C[-1] | サポートされません(相対行 : 絶対行) |
R[-5]C[-1]:RC[-1] | サポートされます(相対行 : 相対行) |
両方の行座標が絶対座標となる数式を独自に作成できます。
for (int i = 0; i < n; i++)
fpspread1.Sheets[0].Cells[i,column].Formula = "SUM(R1C[-1]:R" + (i+1).ToString() + "C[-1])"
または、両方の行座標が相対座標となる数式も作成できます。
for (int i = 0; i < n; i++)
fpspread1.Sheets[0].Cells[i,column].Formula = "SUM(R[" + (-i).ToString() + "]C[-1]:RC[-1])"
開始列と終了列の座標にも、同じ制限が適用されます。 |