Instrução pública

Usado no nível do módulo para declarar variáveis públicas e alocar espaço de armazenamento.

Sintaxe

Public [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ Novo ] tipo ]
[ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ Novo ] tipo ]] . . .

A sintaxe de instrução pública tem estas partes:

Sair Descrição
WithEvents Opcional. Palavra-chave especificando que varname é uma variável de objeto usada para responder a eventos disparados por um objeto ActiveX. WithEvents só será válido em módulos de classe. Você pode declarar quantas variáveis individuais quiser usando o WithEvents, mas não pode criar matrizes com WithEvents, nem pode usar Novo com WithEvents.
nomedavariável Obrigatório. Nome da variável; segue convenções de nomenclatura padrão.
subscritos Opcional. Dimensões de uma variável de matriz; é possível declarar até 60 dimensões múltiplas. O argumentosubscripts usa a seguinte sintaxe:

[ inferiorTo ] superior [ , [ inferiorTo ] superior ] . . .

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.
New Opcional. Palavra-chave que permite a criação implícita de um objeto. Se você usar New ao declarar a variável de objeto, uma nova instância do objeto será criada na primeira referência a ela, para que não seja necessário usar a instrução Set para atribuir a referência ao objeto. A nova palavra-chave não pode ser usada para declarar variáveis de qualquer tipo de dados intrínseco. Ele também não pode ser usado para declarar instâncias de objetos dependentes e não pode ser usado com WithEvents.
type Opcional. Tipo de dados da variável; pode ser Byte, Boolean, Integer, Long, Conversor de Moedas, Single, Double, Decimal (não compatível atualmente), Date, String (para cadeias de caracteres de comprimento variável), comprimentoda cadeia de caracteres (para cadeias de caracteres de comprimento fixo), Objeto, Variant, um tipo definido pelo usuário ou um tipo de objeto. Use uma cláusula Astipo para todas as variáveis que estão sendo definidas.

Comentários

As variáveis declaradas usando a instrução Public estão disponíveis para todos os procedimentos em todos os módulos em todos os aplicativos, a menos que o Módulo Privado de Opção esteja em vigor; nesse caso, as variáveis são públicas somente dentro do projeto em que residem.

A instrução Public não pode ser usada em um módulo de classe para declarar uma variável de cadeia de caracteres de comprimento fixo.

Use a instrução Public para declarar o tipo de dados de uma variável. Por exemplo, a seguinte instrução declara uma variável como um Inteiro:

Public NumberOfEmployees As Integer 

Use também uma instrução Pública para declarar o tipo de objeto de uma variável. A instrução a seguir declara uma variável para uma nova instância de uma planilha:

Public X As New Worksheet 

Se a palavra-chave New não for usada ao declarar uma variável de objeto, a variável que se refere ao objeto deverá receber um objeto existente usando a instrução Set para poder ser usada. Até que seja atribuído um objeto, a variável de objeto declarada tem o valor especial Nothing, o que indica que ele não se refere a nenhuma instância específica de um objeto.

Você também pode usar a instrução Public com parênteses vazios para declarar uma matriz dinâmica. Após declarar uma matriz dinâmica, use a instrução ReDim dentro de um procedimento para definir o número de elementos e as dimensões na matriz. Se você tentar redeclare uma dimensão para uma variável de matriz cujo tamanho foi explicitamente especificado em uma instrução Privada, Pública ou Dim , ocorrerá um erro.

Se você não especificar um tipo de dados ou um tipo de objeto e não houver nenhuma instrução Deftype no módulo, a variável será Variant por padrão.

Quando as variáveis são inicializadas, uma variável numérica é inicializada como 0, uma cadeia de caracteres de comprimento variável é inicializada para uma cadeia caracteres de comprimento zero ("") e uma cadeia de caracteres de comprimento fixo é preenchida com zeros. As variáveis Variant são inicializadas para Empty. Todo elemento de uma variável de tipo definido pelo usuário é inicializado como se fosse uma variável separada.

Exemplo

Este exemplo usa a instrução Public no nível do módulo (seção geral) de um módulo padrão para declarar explicitamente variáveis como públicas; ou seja, eles estão disponíveis para todos os procedimentos em todos os módulos em todos os aplicativos, a menos que o Módulo Privado de Opção esteja em vigor.

Public Number As Integer ' Public Integer variable. 
Public NameArray(1 To 5) As String ' Public array variable. 
' Multiple declarations, two Variants and one Integer, all Public. 
Public MyVar, YourVar, ThisVar As Integer 

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.