User Defined Types

A user defined type (or data structure) lets you create a single data type that can represent more than one built-in data type.
Often abbreviated to UDTs.
The default value is the default value of the individual elements
You create a user defined type using the Type statement.
A type is a collection of variables (or fields)
This combines multiple data types into a single data type.

Type aType 
   Field1 As String
   Field2 As Integer
   Field3 As Boolean
End Type

This allows you to define a single variable to access all the fields
You define custom data types outside of procedures at the top of your module. Once you have created your type use the Dim statement to declare a variable of that type.

Dim mytype As sType 
mytype.Field1 = "Tuesday"
mytype.Field2 = 24
mytype.Field3 = False

Types can be very useful but they do have a number of limitations:

  • You can't declare a new instance of a type. They must all be declared at design time

  • You can't validate or restrict the values that are assigned to the different fields

  • A type is just a static data structure and cannot have any actions associated with it

Using Classes instead of types can overcome all these limitations

You define user defined data types outside at the very top of your modules before any procedures or functions.

UDTs are far more efficient than using a Collection object
It is important to visually distinguish user defined types from other data types.
For this reason is should always be prefixed with an uppercase T.

Type TContactInfo 
    lContactNo As Long
End Type

Type TPerson 
   sNAME As String
   sAGE As String
   lDateBorn As Long
End Type

Once you have declared the userdefined type you can use the Dim statement to declare a variable of that type.

Dim uMyVariable As TPerson 


A fixed array is an example of a static data structure where you know the total number of elements
Arrays are linear
Arrays can be resized but not very efficiently.
Arrays can be sorted but not very efficiently.
Arrays do not use space very efficiently
If you declare an array to hold 50 elements and then only use 5.
More Details


More Details

Dynamic Data Types

These always refer to data in memory.
The size only increases when necessary
Contains at least once to another instance of the same class
The simplest example is a linear data structure

Linear Data Types

This is a dynamic data structure
Each element contains information and a reference to another element of the same type
Easy to add and remove elements in any position
Easy to resize
Typically include at least one header item

VB 6.0

Since VB 6.0 user defined types can be passed as property values.
Since VB 6.0 user defined type can be used in public function declarations


When defining a user defined type all variables within the type should be in capitals
A UDT is not a variable and does not take up any space.

© 2019 Better Solutions Limited. All Rights Reserved. © 2019 Better Solutions Limited TopPrevNext