MESCIUS SPREAD for Windows Forms 17.0J
数値型セル

数値型セルを使用すると、倍精度浮動小数点値、および分数の入力が可能になります。 数値型セルでは少数値、整数値、または分数を表示できます。 ここでは、数値型セルの書式と計算について説明します。

数値型セルとその各属性を設定するには、NumberCellTypeクラスを使用します。 通貨型セルとその各属性を設定するには、CurrencyCellTypeクラスを使用します。

精度の設定

数値は通常、倍精度データ型として計算および保存されます。このデータ型は、約15桁の精度を適用します。セルの書式は、任意の桁数を表示するように設定できます。たとえば次のコードは、セル範囲A1:A5の値を合計し、この結果をセルA6に表示します。セルA6の値は完全な精度(倍精度データ型の上限)を維持しますが、セルA6に表示されるテキストは、小数点以下1桁(小数第1位)になるように端数処理されます。

C#
コードのコピー
NumberCellType ct = new NumberCellType();
ct.DecimalPlaces = 1;
spread.Sheets[0].Cells[5, 0].CellType = ct;
spread.Sheets[0].Cells[5, 0].Formula = "SUM(A1:A5)";
Visual Basic
コードのコピー
Dim ct As New NumberCellType()
ct.DecimalPlaces = 1
spread.Sheets(0).Cells(5, 0).CellType = ct
spread.Sheets(0).Cells(5, 0).Formula = "SUM(A1:A5)"

数値型セルは、有効数値として15桁の精度をサポートします。これは、整数部分と小数部分を含めた合計桁数です。たとえば、小数部分に10桁を使用する場合は、整数部分は5桁に限定されます。また、倍精度データ型で浮動小数点エラーが発生する可能性もあります。より大きな数値、または小数点以下の桁数がより大きな数値の精度を維持するには、通貨型セルの使用を検討してください。通貨型セルは10進数データ型を使用し、浮動小数点エラーが発生しにくいデータ型です。

数値の書式設定

数値型セルでは、整数または小数として数値を表示する方法をカスタマイズできます。これには、次の表に示すさまざまな書式機能を使用します。 各プロパティの使用例については、このページで後述します。

プロパティ 説明
DecimalPlaces 少数値に対し、小数点以下の桁数を設定します。
DecimalSeparator 少数値を表示するための小数点文字を設定します。
FixedPoint 固定小数点で数値を表示するために、数値の小数部分にプレースホルダとしてゼロを表示するかどうかを設定します。
LeadingZero 先行ゼロを表示するかどうかを設定します。
MaximumValue ユーザーが入力可能な最大値を設定します。
MinimumValue ユーザーが入力可能な最小値を設定します。
NegativeFormat 負数の表示書式を設定します。
NegativeRed 負の数値を赤色で表示するかどうかを設定します。
OverflowCharacter 表示幅に収まらなかった値を置換する文字を設定します。
Separator 数値の3桁区切りに使用する文字列を設定します。
ShowSeparator 3桁区切りの文字列を表示するかどうかを設定します。

設定方法

NumberCellTypeクラスのインスタンスを作成して、クラスの各プロパティを設定します。セルに設定する場合はCellクラスの、行に設定する場合はRowクラスの、列に設定する場合はColumnクラスの、あるいはスタイルに設定する場合はStyleInfoクラスのCellTypeプロパティに、定義したNumberCellTypeクラスのインスタンスを割り当てます。

サンプルコード

次のサンプルコードは、セルを数値型セルに設定します。

C#
コードのコピー
FarPoint.Win.Spread.CellType.NumberCellType nmbrcell = new FarPoint.Win.Spread.CellType.NumberCellType();
nmbrcell.DecimalSeparator = ",";
nmbrcell.DecimalPlaces = 5;
nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
nmbrcell.MaximumValue = 500.000;
nmbrcell.MinimumValue = -10.000;
fpSpread1.ActiveSheet.Cells[1, 1].CellType = nmbrcell;
Visual Basic
コードのコピー
Dim nmbrcell As New FarPoint.Win.Spread.CellType.NumberCellType()
nmbrcell.DecimalSeparator = ","
nmbrcell.DecimalPlaces = 5
nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional
nmbrcell.MaximumValue = 500.000
nmbrcell.MinimumValue = -10.000
FpSpread1.ActiveSheet.Cells(1, 1).CellType = nmbrcell
分数の表示

数値型セルでは、数値を分数形式で表示できます。たとえば0.01を1/100と表示できます。値を分数形式で表示するには、NumberCellTypeクラスのFractionModeプロパティを設定します。これにより、セル内で数値を「0.01」と入力しても、直接「1/100」と入力しても、「1/100」と表示されます。分数の精度を設定するには、NumberCellTypeクラスのFractionDenominatorPrecisionプロパティを使用する(数値を1/2、1/4などの分数として表示)、またはFractionDenominatorDigitsプロパティを使用して分母の桁数(2桁、3桁、4桁、それ以上など)を指定します。次の表は、数値型セルの分数関連プロパティの一覧を示します。

プロパティ 説明
FractionMode 数値を分数として表示するかどうかを設定します。
FractionConvertWholeNumbers 数値を分数表示する場合に、整数も分数に変換するかどうかを設定します。
FractionCustomFormat カスタム書式を使用して数値を分数表示する方法を設定します。 カスタム書式を使用するには、FractionDenominatorPrecisionを「Custom」に設定します。
FractionDenominatorDigits 数値を分数表示する場合の桁数を設定します。
FractionDenominatorPrecision 数値を分数表示する場合の精度を設定します。
FractionRenderOnly 数値を分数表示する場合に、分数の編集モードを許可するかどうかを設定します。

分数表示を設定するもう1つの方法は、カスタム書式の値を設定することです(FractionCustomFormatプロパティを使用)。 デフォルト値は"# ???/???"であり、整数(#)の後に続けて3桁の分数(???/???)が表示されます。スラッシュの後の疑問符は、分母の精度を示す桁数です。これには1〜15の値を指定できます(有効な最大桁数が15であるため)。カスタム書式では、"# ???/100"または"# ??/64"のように分母を指定できます。 FractionConvertWholeNumberプロパティをTrueに設定すると、値は整数として表示されなくなるので、数値全体が分数として表示されます。

表示の位置揃えには、セルに設定されているすべての位置揃えプロパティが適用されます。 数値の位置揃えは、分数表示とは関係なく設定されます (後述のサンプルコードでは、分数部分が存在するかどうかに関わらず、数値が右揃えで表示される)。

設定方法

NumberCellTypeクラスのインスタンスを作成して、FractionModeプロパティをTrueに設定します。セルに設定する場合はCellクラスの、行に設定する場合はRowクラスの、列に設定する場合はColumnクラスの、あるいはスタイルに設定する場合はStyleInfoクラスのCellTypeプロパティに、定義したNumberCellTypeクラスのインスタンスを割り当てます。

サンプルコード

次のサンプルコードは、セル内の数値を分数として表示するように設定します。

C#
コードのコピー
fpSpread1.ActiveSheet.Columns[0, 9].Width = 120;
FarPoint.Win.Spread.CellType.NumberCellType frac = new FarPoint.Win.Spread.CellType.NumberCellType();
frac.FractionMode = true;
frac.FractionConvertWholeNumbers = false;
frac.FractionDenominatorPrecision = FarPoint.Win.Spread.CellType.FractionDenominatorPrecision.Custom;
frac.FractionCustomFormat = "## ???/???";
frac.FractionDenominatorDigits = 3;
fpSpread1.ActiveSheet.Columns[0].CellType = frac;
fpSpread1.ActiveSheet.Columns[1].CellType = frac;
fpSpread1.ActiveSheet.Cells[0, 0].Value = 5.00;
fpSpread1.ActiveSheet.Cells[1, 0].Value = 5.01;
fpSpread1.ActiveSheet.Cells[2, 0].Value = 5.02;
fpSpread1.ActiveSheet.Cells[3, 0].Value = 5.03;
fpSpread1.ActiveSheet.Cells[4, 0].Value = 5.04;
fpSpread1.ActiveSheet.Cells[5, 0].Value = 5.05;
fpSpread1.ActiveSheet.Cells[6, 0].Value = 5.06;
fpSpread1.ActiveSheet.Cells[7, 0].Value = 5.07;
fpSpread1.ActiveSheet.Cells[8, 0].Value = 5.08;
fpSpread1.ActiveSheet.Cells[9, 0].Value = 5.09;
fpSpread1.ActiveSheet.Cells[0, 1].Value = 25.000;
fpSpread1.ActiveSheet.Cells[1, 1].Value = 25.011;
fpSpread1.ActiveSheet.Cells[2, 1].Value = 25.021;
fpSpread1.ActiveSheet.Cells[3, 1].Value = 25.031;
fpSpread1.ActiveSheet.Cells[4, 1].Value = 25.041;
fpSpread1.ActiveSheet.Cells[5, 1].Value = 25.051;
fpSpread1.ActiveSheet.Cells[6, 1].Value = 25.061;
fpSpread1.ActiveSheet.Cells[7, 1].Value = 25.071;
fpSpread1.ActiveSheet.Cells[8, 1].Value = 25.081;
fpSpread1.ActiveSheet.Cells[9, 1].Value = 25.091;
Visual Basic
コードのコピー
FpSpread1.ActiveSheet.Columns(0, 9).Width = 120
Dim frac As New FarPoint.Win.Spread.CellType.NumberCellType
frac.FractionMode = True
frac.FractionConvertWholeNumbers = False
frac.FractionDenominatorPrecision = FarPoint.Win.Spread.CellType.FractionDenominatorPrecision.Custom
frac.FractionCustomFormat = "# ???/???"
frac.FractionDenominatorDigits = 3
FpSpread1.ActiveSheet.Columns(0).CellType = frac
FpSpread1.ActiveSheet.Columns(1).CellType = frac
FpSpread1.ActiveSheet.Cells(0, 0).CellType = frac
FpSpread1.ActiveSheet.Cells(0, 0).Value = 5.00
FpSpread1.ActiveSheet.Cells(1, 0).Value = 5.01
FpSpread1.ActiveSheet.Cells(2, 0).Value = 5.02
FpSpread1.ActiveSheet.Cells(3, 0).Value = 5.03
FpSpread1.ActiveSheet.Cells(4, 0).Value = 5.04
FpSpread1.ActiveSheet.Cells(5, 0).Value = 5.05
FpSpread1.ActiveSheet.Cells(6, 0).Value = 5.06
FpSpread1.ActiveSheet.Cells(7, 0).Value = 5.07
FpSpread1.ActiveSheet.Cells(8, 0).Value = 5.08
FpSpread1.ActiveSheet.Cells(9, 0).Value = 5.09
FpSpread1.ActiveSheet.Cells(0, 1).Value = 25.000
FpSpread1.ActiveSheet.Cells(1, 1).Value = 25.011
FpSpread1.ActiveSheet.Cells(2, 1).Value = 25.021
FpSpread1.ActiveSheet.Cells(3, 1).Value = 25.031
FpSpread1.ActiveSheet.Cells(4, 1).Value = 25.041
FpSpread1.ActiveSheet.Cells(5, 1).Value = 25.051
FpSpread1.ActiveSheet.Cells(6, 1).Value = 25.061
FpSpread1.ActiveSheet.Cells(7, 1).Value = 25.071
FpSpread1.ActiveSheet.Cells(8, 1).Value = 25.081
FpSpread1.ActiveSheet.Cells(9, 1).Value = 25.091

このコードの結果は、SPREADでは次のように表示されます。

表示結果

SPREAD デザイナの使用

  1. 作業領域内のセルまたはセル範囲を選択します。
  2. プロパティリストの[その他]カテゴリーから、CellTypeプロパティを選択します。 ドロップダウンリストから数値型を選択します。 これによってCellTypeプロパティが展開され、このセル型に固有のさまざまなプロパティが表示されます。 このリストから、必要に応じてプロパティを選択および設定します。 分数関連の各プロパティは、[分数]タブにまとめられています。
    または、セルまたはセル範囲を右クリックして[セル型]を選択します。 セル型の一覧から数値型を選択します。 セル型エディタで、必要なプロパティを設定します。 〈適用〉ボタンをクリックします。
  3. [ファイル]メニューから[適用して終了]を選択し、変更をコンポーネントに適用して SPREAD デザイナを終了します。
スピンボタンの使用

デフォルトでは、スピンボタンは表示されません。オプションとして、セルが編集モードに切り替わったときに、セルの隣にスピンボタンを表示させることができます。 NumberCellTypeクラスに属する、Spinで始まる各プロパティを使用すると、さまざまなスピン機能を設定できます。 詳細については、「スピンボタンの表示」を参照してください。

ポップアップ電卓の使用

デフォルトでは、実行時に編集モードの数値型セルをダブルクリックすると、ポップアップ電卓が表示されます。 電卓の[OK]および[キャンセル]ボタンとして表示するテキストを指定できます。 詳細については、「ポップアップ電卓」を参照してください。 電卓がポップアップ表示されないようにするには、FpSpreadクラスのSubEditorOpeningイベントを捕捉し、イベント引数を表すSubEditorOpeningEventArgsクラスのCancelプロパティをTrueに設定し、処理をキャンセルします。

参照

 

 


© MESCIUS inc. All rights reserved.