SPREAD for WPF 4.0J - GcSpreadGrid
書式設定(数値型セル)
MESCIUS SPREAD for WPF 4.0J > 開発者ガイド > セル型 > 数値型セル > 書式設定(数値型セル)

数値型セルは、入力用および表示用の書式をそれぞれ設定できます。入力書式はセルが編集状態のときに適用され、表示書式はセルが非編集状態のときに適用されます。数値型セルの入力書式は、書式に合わないデータが入力されないようにユーザーの入力を制限します。

書式設定

(左)入力書式の例        (右)表示書式の例

書式設定にはキーワードを使用する方法と、フィールド オブジェクトを使用する方法があります。入力および表示書式の設定方法について、それぞれ説明します。

入力書式

キーワードによる入力書式の設定

FieldSet プロパティに入力書式を表す NumberFieldSet を設定します。NumberFieldSet クラスのコンストラクタでキーワードを使用して書式を設定します。なお、書式設定には次の構文を使用します。

構文

パターン文字列,正の数の接頭辞,正の数の接尾辞,負の数の接頭辞,負の数の接尾辞

#,##0,,,-,

使用できるキーワードは次のとおりです。

キーワード 説明
# 数値の桁を表します(値が0の場合は何も表示しない)
0 数値の桁を表します(値が0の場合は0を表示)
, 数値の整数部分を3桁区切りで表示するための桁区切り記号を表します。
. 小数点の挿入位置を表します。キーワード内に含められるのは1つだけです。

次のサンプルコードは数値型セルの入力書式をキーワードで設定します。

C#
コードのコピー
NumberCellType num = new NumberCellType();
num.FieldSet = new NumberFieldSet("#,##0,,,-,");
gcSpreadGrid1[0, 0].CellType = num;
Visual Basic
コードのコピー
Dim num As New NumberCellType()
num.FieldSet = New NumberFieldSet("#,##0,,,-,")
GcSpreadGrid1(0, 0).CellType = num

フィールド オブジェクトによる入力書式の設定

FieldSet プロパティで入力書式を表す NumberFieldSet を取得し NumberFieldSet クラスのプロパティでフィールドオブジェクトを参照します。NumberFieldSet にはあらかじめ、接頭辞、整数部分、小数点、小数部分、接尾辞を表すフィールドオブジェクトが作成されています。開発者が新たにフィールドを追加または削除する必要はありません。NumberFieldSet の各プロパティで参照できるフィールドオブジェクトは次のとおりです。

NumberFieldSet のプロパティ 対応するフィールド クラス 説明
SignPrefix NumberSignPrefixField 接頭辞フィールド。主な設定は次のとおりです。
NegativePattern 負の数の接頭辞
PositivePattern 正の数の接頭辞
IntegerPart NumberIntegerPartField 整数入力フィールド。主な設定は次のとおりです。
GroupSeparator 桁区切り記号
GroupSizes 桁区切りの桁数
MaxDigits 最大桁数
MinDigits 最小桁数
SpinIncrement スピンの増減値
DecimalSeparator NumberDecimalSeparatorField 小数点を表すフィールド
DecimalPart NumberDecimalPartField 小数入力フィールド。主な設定は次のとおりです。
MaxDigits 最大桁数
MinDigits 最小桁数
SpinIncrement スピンの増減値
SignSuffix NumberSignSuffixField 接尾辞フィールド。主な設定は次のとおりです。
NegativePattern 負の数の接尾辞
PositivePattern 正の数の接尾辞

次のサンプルコードは数値型セルの入力書式をフィールド オブジェクトで設定します。

C#
コードのコピー
NumberCellType num = new NumberCellType();
num.FieldSet.SignPrefix.NegativePattern = "-" ;
num.FieldSet.IntegerPart.GroupSizes.Add(new IntegerItem(3));
num.FieldSet.IntegerPart.MinDigits = 1;
gcSpreadGrid1[0, 0].CellType = num;
Visual Basic
コードのコピー
Dim num As New NumberCellType()
num.FieldSet.SignPrefix.NegativePattern = "-"
num.FieldSet.IntegerPart.GroupSizes.Add(New IntegerItem(3))
num.FieldSet.IntegerPart.MinDigits = 1
GcSpreadGrid1(0, 0).CellType = num

表示書式

キーワードによる表示書式の設定

DisplayFieldSet プロパティに表示書式を表す NumberDisplayFieldSet を設定します。NumberDisplayFieldSet クラスのコンストラクタでキーワードを使用して書式を設定します。なお、書式設定には入力書式と同様に次の構文を使用します。

構文

パターン文字列,正の数の接頭辞,正の数の接尾辞,負の数の接頭辞,負の数の接尾辞

[###:千円],,,▲,

使用できるキーワードは次のとおりです。

キーワード 説明
# 数値の桁を表します(値が0の場合は何も表示しない)
0 数値の桁を表します(値が0の場合は0を表示)
, 数値の整数部分を3桁区切りで表示するための桁区切り記号を表します。
. 小数点の挿入位置を表します。キーワード内に含められるのは1つだけです。
[DBNum1]G 数値を漢数字で表示(例)一億二千三百四十五万六千七百八十九
[DBNum2]G 数字を漢数字(大字)で表示(例)壱億弐阡参百四拾伍萬六阡七百八拾九
[DBNum3]G 数字を漢数字と全角の数字を組み合わせて表示(例)1億2千3百4十5万6千7百8十9
[DBNum4]G 小数点以下の数字を漢数字で表示(例)〇.九分八厘七毛六糸五忽四微三纖二沙一塵
[:] [###:千円] のように使用。コロンの前に記載した桁数をコロンの後に記載した文字列に置き換えて表示(例)1,234千円

次のサンプルコードは数値型セルの表示書式をキーワードで設定します。

C#
コードのコピー
NumberCellType num = new NumberCellType();
num.DisplayFieldSet = new NumberDisplayFieldSet("[###:千円],,,▲,");
gcSpreadGrid1[0, 0].CellType = num;
Visual Basic
コードのコピー
Dim num As New NumberCellType()
num.DisplayFieldSet = New NumberFieldSet("[###:千円],,,▲,")
GcSpreadGrid1(0, 0).CellType = num

フィールド オブジェクトによる表示書式の設定

DisplayFieldSet プロパティで表示書式を表す NumberDisplayFieldSet を取得し DisplayFields プロパティでフィールドオブジェクトのコレクションを参照します。フィールドオブジェクトを追加するにはコレクションの Add メソッドを使用します。表示書式で使用できるフィールドクラスは次のとおりです。これらのクラスを使用してフィールド オブジェクトを作成します。

フィールド クラス 説明
NumberSignDisplayField 接頭辞フィールド。主な設定は次のとおりです。
NegativePattern 負の数の接頭辞
PositivePattern 正の数の接頭辞
NumberIntegerPartDisplayField 整数表示フィールド。主な設定は次のとおりです。
GroupSeparator 桁区切り記号
GroupSizes 桁区切りの桁数
MinDigits 最小桁数
NumberDecimalSeparatorDisplayField 小数点を表すフィールド 
DecimalSeparator 小数点に表示する文字
NumberDecimalPartDisplayField 小数表示フィールド。主な設定は次のとおりです。
MaxDigits 最大桁数
MinDigits 最小桁数
NumberDecimalGeneralFormatDisplayField 数値を漢数字で表示する場合に使用する漢数字表記フィールド。主な設定は次のとおりです。
Pattern 漢数字表記の形式
NumberMoneyPatternDisplayField 「1,234千円」のように桁数を指定して文字列で置き換えて表示する場合に使用する金額表記フィールド。主な設定は次のとおりです。
DecimalSeparator 小数点に表示する文字
GroupSeparator 桁区切り記号
Pattern [###:千円] のように設定。コロンの前に記載した桁数をコロンの後に記載した文字列に置き換えて表示します。
NumberLiteralDisplayField リテラル文字フィールド。主な設定は次のとおりです。
Text リテラル文字として表示する文字列

次のサンプルコードは数値型セルの表示書式をフィールド オブジェクトで設定します。

C#
コードのコピー
NumberCellType num = new NumberCellType();
num.DisplayFieldSet = new NumberDisplayFieldSet();
num.DisplayFieldSet.DisplayFields.Add(new NumberSignDisplayField() { NegativePattern="▲"});
num.DisplayFieldSet.DisplayFields.Add(new NumberMoneyPatternDisplayField(){Pattern="[###:千円]"});
gcSpreadGrid1[0, 0].CellType = num; 
Visual Basic
コードのコピー
Dim num As New NumberCellType()
num.DisplayFieldSet = New NumberDisplayFieldSet()
num.DisplayFieldSet.DisplayFields.Add(New NumberSignDisplayField() With {.NegativePattern = "▲"})
num.DisplayFieldSet.DisplayFields.Add(New NumberMoneyPatternDisplayField() With {.Pattern = "[###:千円]"})
GcSpreadGrid1(0, 0).CellType = num
関連トピック