一連の文字グループの名前で始まる変数、関数、プロパティに対する既定のデータ型を設定します。
DefBool range [, range] ...
DefByte range [, range] ...
DefCur range [ , range ] ...
DefDbl range [ , range ] ...
DefInt range [ , range ] ...
DefLng range [ , range ] ...
DefSng range [ , range ] ...
DefStr range [ , range ] ...
DefVar range [ , range ] ...
range
1 文字、またはハイフンで分けられた 2 文字です。ハイフンの前後にあるスペースやタブは無視されます。2 文字の範囲は、指定した文字自体を含む 2 つの文字間の文字グループを指定します。文字は、ASCII コード 128 未満の文字でなければなりません。
range の文字は、大文字と小文字を区別しません。例えば、文字グループ J、j、K、k、L、l は、range 指定 J-L、L-J、j-L、L-j、J-l、l-J、j-l、l-j のいずれかによって指定することができます。
次の表は、Deftype ステートメント、参照されるデータ型、その型の接尾辞を示しています。
ステートメント |
データ型 |
接尾辞 |
---|---|---|
DefBool |
Boolean 型 |
(なし) |
DefByte |
Byte 型 |
(なし) |
DefCur |
Currency 型 |
@ |
DefDbl |
Double 型 |
# |
DefInt |
Integer 型 |
% |
DefLng |
Long 型 |
& |
DefSng |
Single 型 |
! |
DefStr |
String 型 |
$ |
DefVar |
Variant 型 |
(なし) |
Deftype ステートメントは、モジュールレベルでしか使用できませんが、モジュールレベルとそのプロシージャ内ですべての宣言に影響します。型とクラスのデータメンバの宣言には影響しません。クラスの関数メンバとプロパティメンバの宣言には影響します。
モジュール内の Deftype ステートメントは、その影響の有無にかかわらず、すべての宣言より先になければなりません。ただし、(Const ステートメントによる) 定数の宣言は、Deftype ステートメントの影響を受けません。
Deftype ステートメントの範囲が、同じ Deftype ステートメントや同じモジュール内の他の Deftype ステートメントの別の範囲と重複することはできません。
範囲 A-Z は特別です。この範囲には、128 未満の ASCII コードを持つ文字だけでなく、すべての各国対応文字が含まれます。各国対応文字を含む唯一の範囲指定です。例えば、すべての変数、関数、プロパティの既定のデータ型を Single 型 (BASIC の複数バージョンの標準) に変更するには、DefSng A-Z を指定します。
データ型に関して明示的な宣言 (Dim X As Integer、Dim Y$、Define MyFunction As Double など) は、Deftype 宣言よりも優先されます。