マスク型セルの書式は、入力マスクによりユーザーが入力可能なデータの形式を制限する機能です。書式設定にはキーワードを使用する方法と、フィールド オブジェクトを使用する方法があります。それぞれの方法について説明します。
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 | サロゲート ぺア文字を除くすべての文字を表します。 |
キーワードによる書式設定について、次のサンプルコードを参照してください。
次のサンプルコードはマスク型セルに郵便番号の書式をキーワードで設定します。
C# |
コードのコピー |
---|---|
MaskCellType msk = new MaskCellType(); msk.FieldSet = new MaskFieldSet(@"〒\D{3}-\D{4}"); gcSpreadGrid1[0, 0].CellType = msk; |
Visual Basic |
コードのコピー |
---|---|
Dim msk As New MaskCellType() msk.FieldSet = New MaskFieldSet("〒\D{3}-\D{4}") GcSpreadGrid1(0, 0).CellType = msk |
FieldSet プロパティで書式を表す MaskFieldSet を取得し Fields プロパティでフィールド オブジェクトのコレクションを参照します。フィールド オブジェクトを追加するにはコレクションの Add メソッドを使用します。書式で使用できるフィールドクラスは次のとおりです。これらのクラスを使用してフィールド オブジェクトを作成します。
フィールド クラス | 説明 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MaskPatternField | 入力マスク フィールド。主な設定は次のとおりです。
Pattern プロパティで使用可能な正規表現は次のとおりです。
文字種を表すキーワードは次のとおりです。なお、半角文字と全角文字は文字の Shift-JIS コードを使用して識別します。
文字種以外のキーワードは次のとおりです。
以下、設定例です。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaskLiteralField | リテラル文字フィールド。主な設定は次のとおりです。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaskEnumerationField | 列挙型フィールド。Items プロパティで設定した項目のどれか1つにマッチする値が入力可能なフィールドです。主な設定は次のとおりです。
|
リテラル文字フィールド以外は、上の表の設定に加えて PromptChar プロパティで未入力のときに表示するプロンプト文字を設定できます。
フィールド オブジェクトによる書式設定について、次のサンプルコードを参照してください。
次のサンプルコードはマスク型セルに郵便番号の書式をフィールド オブジェクトで設定します。
C# |
コードのコピー |
---|---|
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 }); gcSpreadGrid1[0, 0].CellType = msk; |
Visual Basic |
コードのコピー |
---|---|
Dim msk As 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}) GcSpreadGrid1(0, 0).CellType = msk |