スプレッドシート全体や行、列、セル、セルブロックのセルのデータ型を設定します。
このプロパティを設定する前に、Col、Rowプロパティなどを使用して処理の対象を指定します。
以下の値を指定します。初期値は、通常のセルは$CellTypeEdit、列ヘッダ、行ヘッダのセルは$CellTypeStaticTextです。
定数 |
値 |
説明 |
$CellTypeDate |
0 |
日付型 |
$CellTypeEdit |
1 |
文字型 |
$CellTypePic |
4 |
マスク型 |
$CellTypeStaticText |
5 |
ラベル型 |
$CellTypeTime |
6 |
時刻型 |
$CellTypeButton |
7 |
コマンドボタン型 |
$CellTypeComboBox |
8 |
コンボボックス型 |
$CellTypePicture |
9 |
ピクチャ型 |
$CellTypeCheckBox |
10 |
チェックボックス型 |
$CellTypeCurrency |
12 |
通貨型 |
$CellTypeNumber |
13 |
数値型 |
$CellTypePercent |
14 |
パーセント型 |
$CellTypeScientific |
15 |
指数型 |
使用例
Col = 2;
Row = 3;
CellType = $CellTypeDate;
TypeDateFormat = $TypeDateFormatGEEMMDD;
BlockMode = $TRUE;
Col = 3;
Row = 3;
Col2 = 5;
Row2 = 5;
CellType = $CellTypeNumber;
TypeNumberDecPlaces = 0;
BlockMode = $FALSE;
セルのデータ型ごとに固有の設定を行うために、以下の関連プロパティがあります。
日付型 |
文字型 |
マスク型 |
ラベル型 |
時刻型 |
|
|
|
|
|
コマンドボタン型 |
コンボボックス型 |
ピクチャ型 |
チェックボックス型 |
|
|
以下はメソッド |
|
|
|
通貨型 |
数値型 |
パーセント型 |
指数型 |
|
|
|
|
|
名前が"Type"で始まる関連プロパティは、セルのデータ型ごとに最後に設定した内容が記憶され、次回以降の同じデータ型のセルへの設定時にプロパティが継承されます。
例えば、日付型($CellTypeDate)を設定した後に、TypeDateMaxプロパティやTypeDateMinプロパティを設定すると、それ以降に作成する日付型セルは同じ設定が引き継がれます。
関連するプロパティの初期値は、セルのデータ型ごとに記憶されます。複数のデータ型で使用するTypeHAlignプロパティ、TypeVAlignプロパティなども、データ型ごとに別々に管理されます。
記憶された設定は、それ以降のセルのデータ型に関する設定時にまとめて適用されます。この機能は、複数のセルに同一の設定をする場合には便利ですが、異なる設定をする場合には注意が必要です。
・動作イメージ
(1) 関連プロパティの値をデータ型ごとに保持している。
日付型 |
|
|
|
||
TypeDateCentury = $FALSE; TypeDateMax = "20991231"; TypeDateMin = "19000101"; TypeSpin = $FALSE; TypeHAlign = $TypeHAlignLeft; TypeVAlign = $TypeVAlignTop; : |
数値型 |
|
|||
|
… |
||||
|
|||||
|
|
|
|||
|
|
|
|
||
|
(2) CellTypeプロパティへの設定時は、設定するデータ型に対応する(1)の内容をすべて同時に設定する。
CellType = $CellTypeDate;
日付型 |
→ 対象セルにすべてを設定する |
TypeDateCentury = $FALSE; TypeDateMax = "20991231"; TypeDateMin = "19000101"; TypeSpin = $FALSE; TypeHAlign = $TypeHAlignLeft; TypeVAlign = $TypeVAlignTop; : |
(3) "Type"で始まる関連プロパティへの設定時は、(1)を更新したあと (1)の内容をすべて同時に設定する。
TypeDateMin = "19500101";
日付型 |
→ 対象セルにすべてを設定する |
TypeDateCentury = $FALSE; TypeDateMax = "20991231"; TypeDateMin = "19500101"; TypeSpin = $FALSE; TypeHAlign = $TypeHAlignLeft; TypeVAlign = $TypeVAlignTop; : |
プログラム例
Col = 1; /* 列1行1セルを設定 */
Row = 1;
CellType = $CellTypeDate; /* 日付型に設定 */
TypeDateMin = "19500101"; /* 日付範囲の始まりを1950/01/01に設定 */
TypeDateMax = "20501231"; /* 日付範囲の終わりを2050/12/31に設定 */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
Col = 2; /* 列2行2セルを設定 */
Row = 2;
CellType = $CellTypeDate; /* 日付型に設定(日付範囲も列1行1セルと同じ(1950/01/01〜2050/12/31)になる) */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
Col = 3; /* 列3行3セルを設定 */
Row = 3;
CellType = $CellTypeDate; /* 日付型に設定(この時点では日付範囲は列1行1、列2行2セルと同じ) */
TypeDateMin = "20000101"; /* 日付範囲の始まりを2000/01/01に設定(日付範囲は2000/01/01〜2050/12/31になる) */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
Col = 4; /* 列4行4セルを変更 */
Row = 4;
CellType = $CellTypeDate; /* 日付型に設定(日付範囲は列3行3セルと同じ(2000/01/01〜2050/12/31)になる) */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
/* 注意が必要な設定例 */
Col = 1; /* 再度、列1行1セルを変更 */
Row = 1;
/* この時点では元の設定通り(1950/01/01〜2050/12/31) */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
TypeDateMax = "20001231"; /* 1つ前の日付型の設定(列4行4セルの設定)が初期値になるため、元の設定はすべて上書きされる */
/* その結果、TypeDateMinの値も変更され、日付範囲は2000/01/01〜2000/12/31になる */
print(Col, Row, TypeDateMin, TypeDateMax, "\n");
BlockModeを$TRUEにしてセルブロックへの設定の適用をする場合、Col、Rowプロパティが指すセルを基準に各プロパティが設定されます。
例えば、Col、Rowプロパティの指すセルがコンボボックス型セルの場合は、セルブロック内のセルはすべてコンボボックス型セルに変更され、同じ設定が適用されます。
多くのデータ型で共通であるTypeHAlign、TypeVAlignプロパティなどの変更でも、セルのデータ型も含めてすべて同じ設定になるので注意してください。
コンボボックス型セルでは、リスト項目を操作する以下のプロパティやメソッドは、プロパティ継承の対象になりません。
TypeComboBoxCurSelプロパティ
TypeComboBoxListプロパティ
TypeComboBoxStringプロパティ
これらを使用したリスト項目の操作は、CellTypeプロパティや"Type"で始まるコンボボックス型セルの関連プロパティへの設定に影響を与えません。
TypeComboBoxCountプロパティは読取専用なので、プロパティ継承の対象になりません。
TypeComboBoxIndexプロパティは変数としてのみ機能するため、セルの状態とは無関係に値を1つだけ保持します。
ラベル型セルは、通常のセルと列ヘッダ、行ヘッダのセルで初期値が異なるため、プロパティ継承のためのデータを別々に保持しています。
ラベル型 |
|
ラベル型(ヘッダ用) |
TypeTextPrefix = $FALSE; TypeTextShadow = $FALSE; TypeTextWordWrap = $FALSE; TypeHAlign = $TypeHAlignLeft; TypeVAlign = $TypeVAlignTop; : |
TypeTextPrefix = $FALSE; TypeTextShadow = $TRUE; TypeTextWordWrap = $TRUE; TypeHAlign = $TypeHAlignCenter; TypeVAlign = $TypeVAlignCenter; : |
"Type"で始まるラベル型セルの関連プロパティへの設定は、この両方のデータが更新されます。セルへの設定はそれぞれのデータが使用されます。
TypeHAlign = $TypeHAlignRight;
ラベル型 |
|
ラベル型(ヘッダ用) |
TypeTextPrefix = $FALSE; TypeTextShadow = $FALSE; TypeTextWordWrap = $FALSE; TypeHAlign = $TypeHAlignRight; TypeVAlign = $TypeVAlignTop; : |
TypeTextPrefix = $FALSE; TypeTextShadow = $TRUE; TypeTextWordWrap = $TRUE; TypeHAlign = $TypeHAlignRight; TypeVAlign = $TypeVAlignCenter; : |
|
↓ 通常のセルに設定 |
|
↓ 列ヘッダ、行ヘッダの セルに設定 |
コマンドボタン型、コンボボックス型セルでは、通常は常にコマンドボタンやコンボボックスが表示されますが、ButtonDrawModeプロパティの設定でアクティブセルの位置によって表示/非表示を制御できます。
OperationModeプロパティでスプレッドシートを行単位で扱うモード(Row、Single、Multi、Extended)が指定されている場合は、コマンドボタンやコンボボックスは表示されません。行モード($OperationModeRow)については、行が編集状態のときだけコマンドボタンやコンボボックスが表示されます。
読み出し専用モード($OperationModeRead)では、コマンドボタンやコンボボックスは表示はされますが使用できません。
コマンドボタン型、コンボボックス型セルについては、標準モード($OperationModeNormal)または行モード($OperationModeRow)で使用してください。