用戶定義類型(User-Defined Type,簡(jiǎn)稱UDT)可以方便地在一個(gè)變量中存儲(chǔ)相關(guān)數(shù)據(jù),是編程者自已設(shè)置的數(shù)據(jù)類型。
使用Type語(yǔ)句來(lái)定義用戶定義類型:
[Private Public] Type 用戶定義類型名稱
元素名稱As 類型
元素名稱As 類型
……
End Type
說(shuō)明:
一個(gè)用戶定義類型可以包括一個(gè)或多個(gè)元素
必須在模塊的聲明部分編寫用戶定義類型
在用戶定義類型作用域范圍內(nèi)可以聲明變量為用戶定義類型
元素名稱可以是數(shù)組
類型可以是另一個(gè)用戶定義類型
用戶定義類型可以用于構(gòu)建高級(jí)數(shù)據(jù)結(jié)構(gòu),如隊(duì)列、鏈表和棧
下面的代碼定義了一個(gè)簡(jiǎn)單的UDT:
Public Type udtStudent
Num As Integer
Name As String
Age As Integer
End Type
可以在UDT中使用其他的UDT,如下所示:
Public Type udtGrade
Chinese As Integer
Math As Integer
English As Integer
End Type
Public Type udtStudent
Num As Integer
Name As String
Age As Integer
Grade As udtGrade
End Type
注意,被引用的UDT必須放置在引用的UDT之前,如上面的代碼所示。
創(chuàng)建一個(gè)UDT類型的數(shù)組:
Private students(10) AsudtStudent
給UDT中的數(shù)據(jù)賦值:
students(0).Num = 1
students(0).Name =”Jessica”
students(0).Age = 9
students(0).Grade.Chinese = 95
下面的代碼可以判斷UDT中元素的類型:
Private MyGrade As udtGrade
If TypeOf MyGrade Is udtGradeThen
Debug.Print “這個(gè)用戶定義類型是udtGrade.”
End If
Debug.PrintTypeName(MyGrade.Chinese)
結(jié)果如下所示。