Instrucción Type

Se usa en el nivel de módulo para definir un tipo de datos definido por el usuario que contiene uno o varios elementos.

Sintaxis

[ Privado | Public ] Escribavarnameelementname [ ( [ subíndices ] ) ] As type
[ elementname [ ( [ subíndices ] ) ] Comotipo ] . . .
End Type

La sintaxis de la instrucción Type consta de las partes siguientes:

Parte Descripción
Public Opcional. Se usa para declarar tipos definidos por el usuario que están disponibles para todos los procedimientos en todos los módulos de todos los proyectos.
Private Opcional. Se usa para declarar tipos definidos por el usuario que solamente están disponibles dentro del módulo donde se hace la declaración.
varname Obligatorio. Nombre del tipo definido por el usuario; sigue las convenciones de nomenclatura de variables estándar.
Elementname Obligatorio. Nombre de un elemento del tipo definido por el usuario. Los nombres de elementos también siguen las convenciones de nomenclatura de variable estándar, a excepción de que se pueden usar palabras clave.
subscripts Cuando no se encuentra de manera explícita en lower, el límite inferior de una matriz se controla mediante la instrucción Option Base. El límite inferior es cero si no existe una instrucción Option Base.
type Obligatorio. Tipo de datos del elemento; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no compatible actualmente), Date, String (para cadenas de longitud variable), Longitud de cadena (para cadenas de longitud fija), Object, Variant, otro tipo definido por el usuario o un tipo de objeto.

Comentarios

La instrucción Type solo se puede usar en el nivel de módulo. Después de declarar un tipo definido por el usuario mediante la instrucción Type , puede declarar una variable de ese tipo en cualquier lugar dentro del ámbito de la declaración. Use Dim, Private, Public, ReDim o Static para declarar una variable de un tipo definido por el usuario.

En módulos estándar y módulos de clase, los tipos definidos por el usuario son públicos de manera predeterminada. Esta visibilidad se puede cambiar mediante la palabra clave Private .

Los números de línea y las etiquetas de línea no están permitidos en bloques Type...End Type.

Los tipos definidos por el usuario se usan a menudo con registros de datos, que frecuentemente constan de un número de elementos relacionados de tipos de datos distintos.

En el ejemplo siguiente se muestra el uso de matrices de tamaño fijo en un tipo definido por el usuario:

Type StateData 
    CityCode (1 To 100) As Integer    ' Declare a static array. 
    County As String * 30 
End Type 
 
Dim Washington(1 To 100) As StateData 

En el ejemplo anterior, StateData incluye la CityCode matriz estática y el registro Washington tiene la misma estructura que StateData.

Si declara una matriz de tamaño fino dentro de un tipo definido por el usuario, sus dimensiones se deben declarar con literales numéricos o constantes en vez de variables.

Ejemplo:

En este ejemplo se usa la instrucción Type para definir un tipo de datos definido por el usuario. La instrucción Type se usa únicamente en el nivel de módulo. Si aparece en un módulo de clase, una instrucción Type debe ir precedida por la palabra clave Private.

Type EmployeeRecord    ' Create user-defined type. 
    ID As Integer    ' Define elements of data type. 
    Name As String * 20 
    Address As String * 30 
    Phone As Long 
    HireDate As Date 
End Type 
Sub CreateRecord() 
    Dim MyRecord As EmployeeRecord    ' Declare variable. 
 
    ' Assignment to EmployeeRecord variable must occur in a procedure. 
    MyRecord.ID = 12003    ' Assign a value to an element. 
End Sub

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.