Instrução Type

Usado no nível do módulo para definir um tipo de dados definido pelo usuário que contém um ou mais elementos.

Sintaxe

[ Privado | Público ] Digite nome de elementovarname [ ( [ subscripts ] ) ] Comotipo
[ elementname [ ( [ subscripts ] ) ] Comotipo ] . . .
Tipo final

A sintaxe da instrução Type tem estas partes:

Sair Descrição
Public Opcional. Usado para declarar tipos definidos pelo usuário que estão disponíveis para todos os procedimentos em todos os módulos em todos os projetos.
Private Opcional. Usado para declarar tipos definidos pelo usuário que estão disponíveis somente no módulo em que a declaração é feita.
nomedavariável Obrigatório. Nome do tipo definido pelo usuário; segue convenções de nomenclatura de variável padrão.
Elementname Obrigatório. Nome de um elemento do tipo definido pelo usuário. Os nomes de elementos também seguem convenções de nomenclatura de variável padrão, exceto que as palavras-chavepodem ser usadas.
subscritos Quando não for explicitamente indicado em inferior, o limite inferior de uma matriz será controlado pela instrução Option Base. O limite inferior será zero se nenhuma instrução Option Base estiver presente.
type Obrigatório. Tipo de dados do elemento; pode ser Byte, Boolean, Integer, Long, Conversor de Moedas, Single, Double, Decimal (não suportado atualmente), Date, String (para cadeias de caracteres de comprimento variável), comprimentoda cadeia de caracteres (para cadeias de caracteres de comprimento fixo), Objeto, Variant, outro tipo definido pelo usuário ou um tipo de objeto.

Comentários

A instrução Type só pode ser usada no nível do módulo. Depois de declarar um tipo definido pelo usuário usando a instrução Type , você pode declarar uma variável desse tipo em qualquer lugar no escopo da declaração. Use Dim, Private, Public, ReDim ou Static para declarar uma variável de um tipo definido pelo usuário.

Em módulos padrão e módulos de classe, os tipos definidos pelo usuário são públicos por padrão. Essa visibilidade pode ser alterada usando a palavra-chave Privada .

Números de linha e rótulos de linha não são permitidos no Tipo... Blocos de tipo final .

Tipos definidos pelo usuário geralmente são usados com registros de dados, que geralmente consistem em vários elementos relacionados de diferentes tipos de dados.

O exemplo a seguir mostra o uso de matrizes de tamanho fixo em um tipo definido pelo usuário:

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 

No exemplo anterior, StateData inclui a CityCode matriz estática e o registro Washington tem a mesma estrutura que StateData.

Quando você declara uma matriz de tamanho fixo dentro de um tipo definido pelo usuário, suas dimensões devem ser declaradas com literais numéricos ou constantes em vez de variáveis.

Exemplo

Este exemplo usa a instrução Type para definir um tipo de dados definido pelo usuário. A instrução Type é usada apenas no nível do módulo. Se ele aparecer em um módulo de classe, uma instrução Type deverá ser precedida pela palavra-chave 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

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.