SPREAD for WPF 4.0J - GcSpreadSheet
書式設定(マスク型セル)
MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > セル型 > マスク型セル > 書式設定(マスク型セル)

マスク型セルの書式は、入力マスクによりユーザーが入力可能なデータの形式を制限する機能です。書式設定にはキーワードを使用する方法と、フィールド オブジェクトを使用する方法があります。それぞれの方法について説明します。

キーワードによる書式設定

FieldSet プロパティに書式を表す MaskFieldSet を設定します。MaskFieldSet クラスのコンストラクタでキーワードを使用して書式を設定します。使用できるキーワードは次のとおりです。なお、半角文字と全角文字は文字の Shift-JIS コードを使用して識別します。

文字種のキーワード

半角 全角 説明
¥A ¥A 大文字のアルファベットを表します。[A-Z] または [A-Z]と同等です。
¥a ¥a 小文字のアルファベットを表します。[a-z] または [a-z]と同等です。
¥D ¥D 数字を表します。[0-9] または [0-9]と同等です。
¥B ¥B 2進数を表します。[0-1] または [0-1]と同等です。
¥X ¥X 16 進数を表します。[0-9A-Fa-f] または [0-9A-Fa-f]と同等です。
¥W ¥W すべての英数字を表します。[a-zA-Z_0-9] または [a-zA-Z_0-9]と同等です。
¥K ¥K カタカナ(促音・拗音の小書き表記あり)を表します。
¥N ¥N カタカナ(促音・拗音の小書き表記なし)を表します。
¥H - すべての半角文字を表します。
- ¥J ひらがな(促音・拗音の小書き表記あり)を表します。
- ¥G ひらがな(促音・拗音の小書き表記なし)を表します。
- ¥Z すべての全角文字を表します。
- ¥T サロゲート ペア文字を表します。

 

その他のキーワード

キーワード 説明
[] [] 内の文字のどれか1つにマッチすることを表します。
() () 内の文字列のどれか1つにマッチすることを表します。
| () 内で使用し、文字列間の区切り文字として機能します。
{n} 直前のキーワードの n 回の繰り返しを表します。
{n,} 直前のキーワードの n 回以上の繰り返しを表します。
{n,m} 直前のキーワードの n 回以上で m 回以下の繰り返しを表します。
^ その後に続く文字グループの補集合をあらわします。
- 文字の範囲を指定します。
* 直前のキーワードの0回以上の繰り返しを表します。{0,}と同等です。
+ 直前のキーワードの1回以上の繰り返しを表します。{1,}と同等です。
? 直前のキーワードの0回または1回の繰り返しを表します。{0,1}と同等です。
¥ キーワードをリテラル文字として表示します。

以下、キーワードの設定例です。

設定例 表示例 説明
¥Z{0, 50} あア漢1Aa 0文字以上、50 文字以下のすべての全角を表します。
¥D{3, 5} 1234 3文字以上、5文字以下のすべての半角数字を表します。
[1-3,a-c,A-C]{10} 1234 10 文字の 1,2,3,a,b,c,A,B,C を表します。
[A-Z]{0, 65535} ABCDE 半角大文字アルファベットを表します。¥A と同等です。
[H^a-z]{0, 65535} 12ABアイウ 小文字のアルファベットを除くすべての半角文字を表します。
[^¥T]{0, 65535} あア漢1Aa サロゲート ぺア文字を除くすべての文字を表します。

キーワードによる書式設定について、次のサンプルコードを参照してください。

次のサンプルコードはマスク型セルに郵便番号の書式をキーワードで設定します。

コードのコピー
MaskCellType msk = new MaskCellType();
msk.FieldSet = new MaskFieldSet(@"〒\D{3}-\D{4}");
GcSpreadSheet.Workbook.ActiveSheet.Cells[1, 2].CellType = msk;
コードのコピー
Dim msk As MaskCellType = New MaskCellType()
msk.FieldSet = New MaskFieldSet("〒\D{3}-\D{4}")
GcSpreadSheet.Workbook.ActiveSheet.Cells(1, 2).CellType = msk

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

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

フィールド クラス 説明
MaskPatternField 入力マスク フィールド。主な設定は次のとおりです。
AutoConvert Pattern プロパティで設定された文字種に自動変換するかどうか
MaxLength Pattern プロパティで設定されたキーワードを繰り返す最大文字数
MinLength Pattern プロパティで設定されたキーワードを繰り返す最小文字数
Pattern 入力マスク。正規表現のキーワードを使用して設定します。

 

Pattern プロパティで使用可能な正規表現は次のとおりです。

表現の種類 説明
8進数(ASCII) ASCII 文字を表現するときだけ使用します。「¥040」のように、頭に0をつけて必ず3桁の数値で表現します。
16 進数(ASCII) ASCII 文字を表現するときだけ使用します。「¥x20」のように、¥x に続いて必ず2桁の数値(頭に0を付ける)で表現します。
16 進数(Unicode) すべての文字を表現できます。「¥u0020」のように、¥u に続いて必ず4桁の数値(頭に0を付ける)で表現します。
キーワード 下表で説明するキーワード(メタ文字)です。
文字 キーワード以外の文字です。

 

文字種を表すキーワードは次のとおりです。なお、半角文字と全角文字は文字の Shift-JIS コードを使用して識別します。

半角 全角 説明
¥A ¥A 大文字のアルファベットを表します。[A-Z]または[A-Z]と同等です。
¥a ¥a 小文字のアルファベットを表します。[a-z]または[a-z]と同等です。
¥D ¥D 数字を表します。[0-9]または[0-9]と同等です。
¥B ¥B 2進数を表します。[0-1]または[0-1]と同等です。
¥X ¥X 16 進数を表します。[0-9A-Fa-f]または[0-9A-Fa-f]と同等です。
¥W ¥W すべての英数字を表します。[a-zA-Z_0-9]または[a-zA-Z_0-9]と同等です。
¥K ¥K カタカナ(促音・拗音の小書き表記あり)を表します。
¥N ¥N カタカナ(促音・拗音の小書き表記なし)を表します。
¥H - すべての半角文字を表します。
- ¥J ひらがな(促音・拗音の小書き表記あり)を表します。
- ¥G ひらがな(促音・拗音の小書き表記なし)を表します。
- ¥Z すべての全角文字を表します。
- ¥T サロゲート ペア文字を表します。

 

文字種以外のキーワードは次のとおりです。

メタ文字 説明
^ その後に続く文字グループの補集合を表します。
- 文字の範囲を指定します。
¥ キーワードをリテラル文字として表示

 

以下、設定例です。

Pattern MaxLength MinLength 表示例 説明
¥Z 0 50 あア漢1Aa 0文字以上、50 文字以下のすべての全角を表します。
¥D 3 5 1234 3文字以上、5文字以下のすべての半角数字を表します。
1-3,a-c,A-C 10 10 1234 10 文字の 1,2,3,a,b,c,A,B,C を表します。
A-Z 0 65535 ABCDE 半角大文字アルファベットを表します。¥A と同等です。
H^a-z 0 65535 12ABアイウ 小文字のアルファベットを除くすべての半角文字を表します。
^¥T 0 65535 あア漢1Aa サロゲート ぺア文字を除くすべての文字を表します。
MaskLiteralField リテラル文字フィールド。主な設定は次のとおりです。
Text リテラル文字として表示する文字列
MaskEnumerationField 列挙型フィールド。Items プロパティで設定した項目のどれか1つにマッチする値が入力可能なフィールドです。主な設定は次のとおりです。
AllowDropDownOpen 項目をドロップダウン リストで表示できるようにするかどうか
AutoOpenDropDown フィールドにフォーカスが移動したとき、自動的に項目のドロップダウン リストを表示するかどうか
AutoConvert 入力された文字を変換して項目とのマッチングを行うかどうか
Items 列挙型フィールドの項目
SpinIncrement スピン機能で送る、または戻す項目の数

リテラル文字フィールド以外は、上の表の設定に加えて PromptChar プロパティで未入力のときに表示するプロンプト文字を設定できます。

フィールド オブジェクトによる書式設定について、次のサンプルコードを参照してください。

次のサンプルコードはマスク型セルに郵便番号の書式をフィールド オブジェクトで設定します。

コードのコピー
MaskCellType msk = new MaskCellType();
msk.FieldSet = new MaskFieldSet();
msk.FieldSet.Fields.Add(new MaskLiteralField() { Text = "〒" });
msk.FieldSet.Fields.Add(new MaskPatternField() { Pattern = @"\D", MinLength = 3, MaxLength = 3 });
msk.FieldSet.Fields.Add(new MaskLiteralField() { Text = "-" });
msk.FieldSet.Fields.Add(new MaskPatternField() { Pattern = @"\D", MinLength = 4, MaxLength = 4 });
GcSpreadSheet.Workbook.ActiveSheet.Cells[3, 3].CellType = msk;
コードのコピー
Dim msk As MaskCellType = New MaskCellType()
msk.FieldSet = New MaskFieldSet()
msk.FieldSet.Fields.Add(New MaskLiteralField() With {
    .Text = "〒"
})
msk.FieldSet.Fields.Add(New MaskPatternField() With {
    .Pattern = "\D",
    .MinLength = 3,
    .MaxLength = 3
})
msk.FieldSet.Fields.Add(New MaskLiteralField() With {
    .Text = "-"
})
msk.FieldSet.Fields.Add(New MaskPatternField() With {
    .Pattern = "\D",
    .MinLength = 4,
    .MaxLength = 4
})
GcSpreadSheet.Workbook.ActiveSheet.Cells(3, 3).CellType = msk