Instrução Type

Utilizado ao nível do módulo para definir um tipo de dados definido pelo utilizador que contém um ou mais elementos.

Sintaxe

[ Privado | Público ] Escrevavarname

    elementname [ ( [ subscripts ] ) ] Comotipo
    [ elementname [ ( [ subscripts ] ) ] Astype ]
    . . .
End Type

A sintaxe da instrução Tipo tem as seguintes partes:

Sair Descrição
Public Opcional. Utilizado para declarar tipos definidos pelo utilizador que estão disponíveis para todos os procedimentos em todos os módulos em todos os projetos.
Private Opcional. Utilizado para declarar tipos definidos pelo utilizador que estão disponíveis apenas no módulo em que a declaração é feita.
nomedavariável Obrigatório. Nome do tipo definido pelo utilizador; segue as convenções de nomenclatura de variáveis padrão.
elementname Obrigatório. Nome de um elemento do tipo definido pelo utilizador. Os nomes de elementos também seguem convenções de nomenclatura de variáveis padrão, exceto que palavra-chave podem ser utilizadas.
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; podem ser Byte, Booleano, Número Inteiro, Longo, Conversor de Moedas, Único, Duplo, Decimal (não suportado atualmente), Data, Cadeia (para cadeias de comprimento variável),Comprimento da cadeia (para cadeias de comprimento fixo), Objeto, Variante, outro tipo definido pelo utilizador ou um tipo de objeto.

Comentários

A instrução Type só pode ser utilizada ao nível do módulo. Depois de ter declarado um tipo definido pelo utilizador com a instrução Tipo , pode declarar uma variável desse tipo em qualquer lugar no âmbito da declaração. Utilize Dim, Private, Public, ReDim ou Static para declarar uma variável de um tipo definido pelo utilizador.

Nos módulos padrão e nos módulos de classe, os tipos definidos pelo utilizador são públicos por predefinição. Esta visibilidade pode ser alterada com a palavra-chave Privada.

Os números de linha e as etiquetas de linha não são permitidos no Tipo... Blocos tipo de fim .

Os tipos definidos pelo utilizador são frequentemente utilizados com registos de dados, que consistem frequentemente em vários elementos relacionados de diferentes tipos de dados.

O exemplo seguinte mostra a utilização de matrizes de tamanho fixo num tipo definido pelo utilizador:

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 registo Washington tem a mesma estrutura que StateData.

Quando declara uma matriz de tamanho fixo dentro de um tipo definido pelo utilizador, as respetivas dimensões têm de ser declaradas com literais numéricos ou constantes em vez de variáveis.

Exemplo

Este exemplo utiliza a instrução Tipo para definir um tipo de dados definido pelo utilizador. A instrução Type é utilizada apenas ao nível do módulo. Se aparecer num módulo de classe, uma instrução Tipo tem de ser precedida pelo palavra-chave Privado.

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.