MESCIUS SPREAD for Windows Forms 17.0J
書式の設定(GcMask型セル)

GcMask型セルの主要機能である書式フィールドの設定とその活用方法について解説します。

書式の設定

GcMask型セルの入力領域はフィールドから構成されており、フィールドによって書式の設定やスタイルを定義することが可能です。フィールドを設定するには、Fieldsプロパティが参照するMaskFieldCollectionInfoを使用します。MaskFieldCollectionInfoは、セル内の各フィールドを表すMaskFieldInfoのコレクションを保持するクラスです。
GcMask型セルの書式を設定するには、直接フィールドオブジェクトを追加する方法と、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。

リテラル文字とプロンプト文字

GcMask型セルは、リテラル文字列を設定し表示させることができます。リテラル文字とは、リテラルフィールド(MaskLiteralFieldInfoクラス)で定義された文字列をそのまま表示する文字列をいいます。 ShowLiteralsプロパティを使えば、入力中にリテラル文字列を表示するかどうかを指定できます。

また、パターンフィールド(MaskPatternFieldInfoクラス)には、プロンプト文字を設定することができます。プロンプト文字を使用することで、入力フィールドを明示的に表示したり入力文字数を視覚的に表すことができます。 プロンプト文字はGcMask型セルのPromptCharプロパティを使用して設定します。なお、各パターンフィールドのPromptCharプロパティを設定するとフィールドごとに異なるプロンプト文字も設定できます。

(図)プロンプト文字("_")

(図)2つ目のパターンフィールドのみ異なるプロンプト文字("*")

文字の自動変換

AutoConvertプロパティをTrueに設定すると、Fieldsプロパティが参照するフィールドコレクションのパターンフィールド(MaskPatternFieldInfo.Pattern)で設定された書式に基づいて、変換可能な文字はすべて自動的に変換されます。たとえば、書式が \A{8} のように設定されていると、小文字を入力しても自動的に大文字に変換されます。また、全角文字だけが許可されている場合は、入力された半角文字は全角文字に変換されます。

セル内部で行われる自動変換の手順を以下に示します。

  1. 小文字から大文字、または大文字から小文字への変換を行います。
  2. 手順1の変換が行われない場合、全角から半角、または半角から全角への変換を行います。
  3. 手順2の変換が行われない場合、全角大文字から半角小文字、全角小文字から半角大文字、半角大文字から全角小文字、半角小文字から全角大文字のいずれかの変換を行います。
半角カタカナ、全角カタカナ、およびひらがなは、次のように変換されます。

Fieldsプロパティのパターンフィールドに"^\V"が設定された場合、IVS(Ideographic Variation Sequence)文字およびIVSの親となる漢字(以下、親字)は以下のように変換されます。

"^\V"(IVS文字を除外する)
IVS 親字に変換されます
親字 そのまま入力されます
フィールドの操作方法

GcMaskCellType.Fieldsプロパティのコレクションをとおして特定のフィールドにアクセスできます。GcMask型セルのフィールドコレクション内の特定のフィールドにアクセスする場合、次のいずれかの方法を使うことができます。

コレクションのインデックスがわかっている場合は、インデックスを使ってフィールドを取得することができます。

サンプルコード

次のサンプルコードはインデックスを使ってフィールドを取得する例です。ここではGcMask型セルの3番目のフィールドを取得する例です。

C#
コードのコピー
GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType cell = (fpSpread1.ActiveSheet.GetCellType(0, 0) as GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType);
GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo myField = (GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo)cell.Fields[2];
Visual Basic
コードのコピー
Dim cell As GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType = TryCast(FpSpread1.ActiveSheet.GetCellType(0, 0), GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType)
Dim myField As GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo = DirectCast(cell.DisplayFields(2), GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo)

また、インデックスを使わず、設定したキー(文字列)を使って特定のフィールドにアクセスすることもできます。キーは、各フィールドのNameプロパティにキーとして文字列を設定します。

次のサンプルコードはキーを使ってフィールドを取得する例です。ここではGcMask型セルの特定のフィールドのNameプロパティにあらかじめ"Key1"という文字列が設定されていることを前提にしています。

C#
コードのコピー
GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType cell = (fpSpread1.ActiveSheet.GetCellType(0, 0) as GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType);
GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo myField = (GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo)cell.Fields["Key1"];
Visual Basic
コードのコピー
Dim cell As GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType = TryCast(FpSpread1.ActiveSheet.GetCellType(0, 0), GrapeCity.Win.Spread.InputMan.CellType.GcMaskCellType)
Dim myField As GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo = DirectCast(cell.DisplayFields("Key1"), GrapeCity.Win.Spread.InputMan.CellType.Fields.MaskFieldInfo)
参照

 

 


© MESCIUS inc. All rights reserved.