| PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > セル型 > InputManセル > GcDateTime型セル > 書式の設定(GcDateTime型セル) |
GcDateTime型セルの書式には、入力用と表示用の2つがあり、それぞれ入力フィールドと表示フィールドを使って書式を設定します。 入力書式は、セルが編集状態のときの書式で、表示書式はセルが非編集状態のときの書式です。 入力フィールドを設定するには、Fields プロパティが参照するDateTimeFieldCollectionInfo クラスを使用します。DateFieldCollectionInfo は、コントロール内の各フィールドを表すDateFieldのコレクションを保持するクラスです。
一方、表示フィールドを設定するには、DisplayFields プロパティが参照するDateTimeDisplayFieldCollectionInfo クラスを使用します。DateDisplayFieldCollectionInfo は、コントロール内の各フィールドを表すDateDisplayFieldのコレクションを保持するクラスです。
GcDateTime型セルの書式を設定するには、それぞれのコレクションのAdd メソッドもしくはAddRange メソッドを使用して直接フィールドオブジェクトを追加する方法と、AddRange メソッドのオーバーライドの1つを使用して、キーワード文字列によりフィールドを自動生成する方法があります。
コレクションのインデックスがわかっている場合は、インデックスを使ってフィールドを取得することができます。
次のサンプル コードは、インデックスを使ってフィールドを取得する例です。ここではGcDateTime型セルの3番目のフィールドを取得する例です。
| C# |
コードのコピー
|
|---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType();
GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo myField = gdcell.Fields[2];
|
|
| Visual Basic |
コードのコピー
|
|---|---|
Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() Dim MyField As GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo = gdcell.Fields(2) |
|
また、インデックスを使わず、設定したキー(文字列)を使って特定のフィールドにアクセスすることもできます。キーは、各フィールドのName プロパティにキーとして文字列を設定します。
次のサンプル コードは、キーを使ってフィールドを取得する例です。ここではGcDateTime型セルの特定のフィールドのName プロパティにあらかじめ"Key1"という文字列が設定されていることを前提にしています。
| C# |
コードのコピー
|
|---|---|
GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo myField = gdcell.Fields["Key1"];
|
|
| Visual Basic |
コードのコピー
|
|---|---|
Dim MyField As GrapeCity.Win.Spread.InputMan.CellType.Fields.DateFieldInfo = gdcell.Fields("Key1") |
|
入力時の書式を設定する入力フィールドには、次の11種類のフィールドが提供されており、これらのフィールドオブジェクトを使って書式を設定することができます。
| フィールド(クラス) | 説明 |
|---|---|
| DateAmPmFieldInfo | 午前/午後入力フィールド |
| DateDayFieldInfo | 日入力フィールド |
| DateEraFieldInfo | 年号入力フィールド |
| DateEraYearFieldInfo | 和暦入力フィールド |
| DateHourFieldInfo | 時間入力フィールド |
| DateLiteralFieldInfo | リテラル文字フィールド |
| DateMinuteFieldInfo | 分入力フィールド |
| DateMonthFieldInfo | 月入力フィールド |
| DateSecondFieldInfo | 秒入力フィールド |
| DateShortHourFieldInfo | 12時間制時刻入力フィールド |
| DateYearFieldInfo | 年入力フィールド |
また、表示フィールドでは、次の14種類のフィールドが提供されています。
| フィールド(クラス) | 説明 |
|---|---|
| DateADDisplayFieldInfo | 西暦表示フィールド |
| DateAmPmDisplayFieldInfo | 午前/午後表示フィールド |
| DateDayDisplayFieldInfo | 日表示フィールド |
| DateEraDisplayFieldInfo | 年号表示フィールド |
| DateEraYearDisplayFieldInfo | 和暦表示フィールド |
| DateHourDisplayFieldInfo | 時刻表示フィールド |
| DateLiteralDisplayFieldInfo | リテラル文字表示フィールド |
| DateMinuteDisplayFieldInfo | 分表示フィールド |
| DateMonthDisplayFieldInfo | 月表示フィールド |
| DateSecondDisplayFieldInfo | 秒表示フィールド |
| DateShortHourDisplayFieldInfo | 12時間制時刻表示フィールド |
| DateSystemFormatDisplayFieldInfo | システム書式表示フィールド |
| DateWeekdayDisplayFieldInfo | 曜日表示フィールド |
| DateYearDisplayFieldInfo | 年表示フィールド |
これらのフィールドオブジェクトをフィールドのコレクションを表すDateTimeFieldCollectionInfoまたはDateTimeDisplayFieldCollectionInfoオブジェクトに追加するには、DateTimeFieldCollectionInfoおよびDateTimeDisplayFieldCollectionInfoクラスのAddメソッドまたは、AddRangeメソッドを使用します。
次のサンプルコードは、以下の図のようにGcDateTime型セルに書式を設定する例です。 DateFieldCollectionInfoクラスのAddRangeメソッドを使用してDateFieldCollectionInfoオブジェクトにフィールドを追加しています。

| C# |
コードのコピー
|
|---|---|
using InputManCell = GrapeCity.Win.Spread.InputMan.CellType; GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType(); // フィールドをクリアします。 gdcell.Fields.Clear(); gdcell.DisplayFields.Clear(); // 入力フィールドのオブジェクトを作成します。 InputManCell.Fields.DateYearFieldInfo dateYearField1 = new InputManCell.Fields.DateYearFieldInfo(InputManCell.YearDigitType.FourDigitYear); InputManCell.Fields.DateLiteralFieldInfo dateLiteralField1 = new InputManCell.Fields.DateLiteralFieldInfo("/"); InputManCell.Fields.DateMonthFieldInfo dateMonthField1 = new InputManCell.Fields.DateMonthFieldInfo(InputManCell.MonthPattern.Number); InputManCell.Fields.DateLiteralFieldInfo dateLiteralField2 = new InputManCell.Fields.DateLiteralFieldInfo("/"); InputManCell.Fields.DateDayFieldInfo dateDayField1 = new InputManCell.Fields.DateDayFieldInfo(); // フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.Fields.AddRange(new InputManCell.Fields.DateFieldInfo[] { dateYearField1, dateLiteralField1, dateMonthField1, dateLiteralField2, dateDayField1 }); // 表示フィールドのオブジェクトを作成します。 InputManCell.Fields.DateYearDisplayFieldInfo dateYearDisplayDield1 = new InputManCell.Fields.DateYearDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField1 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("年"); InputManCell.Fields.DateMonthDisplayFieldInfo dateMonthDisplayField1 = new InputManCell.Fields.DateMonthDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField2 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("月"); InputManCell.Fields.DateDayDisplayFieldInfo dateDayDisplayField1 = new InputManCell.Fields.DateDayDisplayFieldInfo(false); InputManCell.Fields.DateLiteralDisplayFieldInfo dateLiteralDisplayField3 = new InputManCell.Fields.DateLiteralDisplayFieldInfo("日"); // フィールドをコレクションに追加してコントロールに表示書式を設定します。 gdcell.DisplayFields.AddRange(new InputManCell.Fields.DateDisplayFieldInfo[] { dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, dateLiteralDisplayField2, dateDayDisplayField1 , dateLiteralDisplayField3 }); fpSpread1.ActiveSheet.Cells[0, 0].CellType = gdcell; |
|
| Visual Basic |
コードのコピー
|
|---|---|
Imports InputManCell = GrapeCity.Win.Spread.InputMan.CellType Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() ' フィールドをクリアします。 gdcell.Fields.Clear() gdcell.DisplayFields.Clear() ' 入力フィールドのオブジェクトを作成します。 Dim dateYearField1 As New InputManCell.Fields.DateYearFieldInfo(InputManCell.YearDigitType.FourDigitYear) Dim dateLiteralField1 As New InputManCell.Fields.DateLiteralFieldInfo("/") Dim dateMonthField1 As New InputManCell.Fields.DateMonthFieldInfo(InputManCell.MonthPattern.Number) Dim dateLiteralField2 As New InputManCell.Fields.DateLiteralFieldInfo("/") Dim dateDayField1 As New InputManCell.Fields.DateDayFieldInfo() ' フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.Fields.AddRange(New InputManCell.Fields.DateFieldInfo() { _ dateYearField1, dateLiteralField1, dateMonthField1, _ dateLiteralField2, dateDayField1}) ' 表示フィールドのオブジェクトを作成します。 Dim dateYearDisplayDield1 As New InputManCell.Fields.DateYearDisplayFieldInfo(False) Dim dateLiteralDisplayField1 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("年") Dim dateMonthDisplayField1 As New InputManCell.Fields.DateMonthDisplayFieldInfo(False) Dim dateLiteralDisplayField2 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("月") Dim dateDayDisplayField1 As New InputManCell.Fields.DateDayDisplayFieldInfo(False) Dim dateLiteralDisplayField3 As New InputManCell.Fields.DateLiteralDisplayFieldInfo("日") ' フィールドをコレクションに追加してコントロールに入力書式を設定します。 gdcell.DisplayFields.AddRange(New InputManCell.Fields.DateDisplayFieldInfo() { _ dateYearDisplayDield1, dateLiteralDisplayField1, dateMonthDisplayField1, _ dateLiteralDisplayField2, dateDayDisplayField1, dateLiteralDisplayField3}) FpSpread1.ActiveSheet.Cells(0, 0).CellType = gdcell |
|
GcDateTime型セルでは、キーワードによる書式設定が可能です。
以下のサンプルコードは、キーワードで書式を設定しています。
| C# |
コードのコピー
|
|---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType gdcell = new GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType(); gdcell.Fields.Clear(); gdcell.DisplayFields.Clear(); // キーワードから書式を設定します。 gdcell.Fields.AddRange("yyyy年 MM月 dd日"); gdcell.DisplayFields.AddRange("ggg ee年 MM月 dd日"); fpSpread1.ActiveSheet.Cells[0, 0].CellType = gdcell; |
|
| Visual Basic |
コードのコピー
|
|---|---|
Dim gdcell = New GrapeCity.Win.Spread.InputMan.CellType.GcDateTimeCellType() ' キーワードから書式を設定します。 gdcell.Fields.AddRange("yyyy年 MM月 dd日") gdcell.DisplayFields.AddRange("ggg ee年 MM月 dd日") |
|
使用可能な書式キーワードは以下のとおりです。
| キーワード | 説明 |
|---|---|
| A | 紀元後を表す"A.D.(Anno Domini)"を表示 ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| g | 年号の頭文字をアルファベットで表示(M、T、S、H) |
| gg | 年号の頭文字を漢字で表示(明、大、昭、平) |
| ggg | 年号の正式名称を漢字で表示(明治、大正、昭和、平成) |
| e | 和暦年を2桁で表示(先頭に0を付けない) |
| ee | 和暦年を2桁で表示し開始年を元と表示(先頭に0を付ける) |
| E | 和暦年を2桁で表示し開始年を元と表示(先頭に0を付けない) (例:平成元年) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| EE |
和暦年を2桁で表示(先頭に0を付ける) (例:平成元年) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| y | 年を2桁で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| yy | 年を2桁で表示(先頭に0を付ける) |
| yyy | 年を4桁で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| yyyy | 年を4桁で表示(先頭に0を付ける) |
| M | 月を2桁の数字で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| MM | 月を2桁の数字で表示(先頭に0を付ける) |
| MMM | 月を省略形で表示 (DateTimeFormatInfo.AbbreviatedMonthNames() で指定された形式) |
| MMMM | 月を正式名称で表示 (DateTimeFormatInfo.MonthNames()で指定された形式) |
| d | 日を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| dd | 日を表示(先頭に0を付ける) |
| ddd | 曜日を省略形で表示(DateTimeFormatInfo.AbbreviatedDayNames()で指定された形式) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| dddd | 曜日を正式名称で表示(DateTimeFormatInfo.DayNames()で指定された形式) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| \(Chr(92)) | キーワードをリテラル文字として表示 |
| t | 12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列の最初の1文字を表示 |
| tt | 12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列を表示 |
| h | 時を12時間制で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| hh | 時を12時間制で表示(先頭に0を付ける) |
| H | 時を24時間制で表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| HH | 時を24時間制で表示(先頭に0を付ける) |
| m | 分を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| mm | 分を表示(先頭に0を付ける) |
| s | 秒を表示(先頭に0を付けない) ※この書式は「表示書式」専用です。「入力書式」では利用できません。 |
| ss | 秒を表示(先頭に0を付ける) |
| \(Chr(92)) | キーワードをリテラル文字として表示 |