PowerTools SPREAD for Windows Forms 8.0J
書式の設定(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)) キーワードをリテラル文字として表示
関連トピック

 

 


© 2004-2015, GrapeCity inc. All rights reserved.