用於模組層級設定變數的預設資料型態、傳遞給程序的參數,以及 Function 和 Property 的回傳類型。取得以指定字元開頭的程序。
語法
DefBool字母範圍,[ 字母範圍 ] ......DefByteletterrange, [ letterrange ] ......定義字母範圍,[ 字母範圍 ] ......降低字母範圍、[ 字母範圍 ] ......DefLngLngletterrange, [ letterrange ] ... ( 僅適用於 64 位元平台) DefLngPtrletterrange, [ letterrange ] ...DefCur字母範圍,[ 字母範圍 ] ......DefSng字母範圍,[ 字母範圍 ] ......DefDbl字母範圍,[ 字母範圍 ] ......DefDec字母範圍、[ 字母範圍 ] ......DefDateletterrange, [ letterrange ] ......DefStr字母範圍,[ 字母範圍 ] ......DefObj字母範圍、[ 字母範圍 ] ......DefVar字母範圍,[ 字母範圍 ] ......
所需的 letterrange 參數語法如下: letter1 [ -letter2 ]
letter1 和 letter2 參數指定了你可以設定預設資料型別的名稱範圍。 每個參數代表變數、參數、 函式 程序或 Property 取得 程序名稱的第一個字母,且可以是字母表中的任何一個字母。 字母在 letterrange 的案例並不顯著。
註解
語句名稱決定資料型態。
| 陳述式 | 資料類型 |
|---|---|
| DefBool | 布林值 |
| DefByte | 位元組 |
| DefInt | 整數 |
| 防禦 | Long |
| DefLngLng | LongLong (僅適用於 64 位元平台) |
| DefLngPtr | LongPtr |
| 防備庫 | 貨幣 |
| 防禦性武器 | Single |
| DefDbl | 雙精確度 |
| 防務署 | 十進位 (目前不支援) |
| DefDate | Date |
| 防禦力 | 字串 |
| 防衛 | Object |
| DefVar | Variant |
例如,在以下程式片段中, Message 是一個字串變數。
DefStr A-Q
. . .
Message = "Out of stack space."
Def類型陳述句只影響使用該模組的部分。 例如,某模組中的 DefInt 陳述只會影響變數的預設資料型態、傳遞給程序的參數,以及該模組中宣告的 Function 和 Property Get 程序的回傳類型;其他模組中變數、參數與回傳型別的預設資料型態不受影響。 如果沒有用 Def類型 陳述式明確宣告,所有變數、所有參數、所有 Function 程序和所有 Property Get 程序的預設資料型別都是 Variant。
當你指定字母範圍時,通常會定義以字 元集前 128 個字元中字母開頭的變數的資料型態。 然而,當你指定字母範圍 A–Z 時,會預設所有變數的資料型別,包括字 元集中擴展部分 128–255 () 以國際字元開頭的變數。
在指定 A-Z 範圍後,你無法再用 Def類型 語句重新定義任何變數子範圍。 在指定區間後,若您在其他 Def類型 語句中加入先前定義的字母,則會發生錯誤。 不過,你可以透過使用 Dim 陳述式搭配 As類型 子句,明確指定任何變數的資料型態,不論是否定義。
例如,你可以在模組層級使用以下程式碼,將變數定義為 Double ,儘管預設資料型別是整 數。
DefInt A-Z
Dim TaxRate As Double
Def型態 陳述不會影響 使用者定義型別 的元素,因為這些元素必須明確宣告。
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。