Instrucción Public

Se usa en el nivel de módulo para declarar variables públicas y asignar espacio de almacenamiento.

Sintaxis

Public [ WithEvents ] varname [ ( [ subíndices ] ) ] [ As [ New ] type ]
[ , [ WithEvents ] varname [ ( [ subíndices ] ) ] [ As [ New ] type ]] . . .

La sintaxis de la instrucción Public contiene los elementos siguientes:

Parte Descripción
WithEvents Opcional. Palabra clave que especifica que varname es una variable de objeto que se usa para responder a eventos desencadenados por un objeto ActiveX. WithEvents solo es válido en módulos de clase. Puede declarar tantas variables individuales como desee mediante WithEvents, pero no puede crear matrices con WithEvents, ni puede usar New con WithEvents.
varname Obligatorio. Nombre de la variable; sigue las convenciones de nomenclatura estándar.
subscripts Opcional. Dimensiones de una variable de matriz; se pueden declarar hasta 60 dimensiones distintas. El argumentosubíndices usa la sintaxis siguiente:

[ lowerTo ] upper [ , [ lowerTo ] upper ] . . .

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.
Nuevo Opcional. Palabra clave que permite la creación implícita de un objeto. Si usa Nuevo al declarar la variable de objeto, se crea una nueva instancia del objeto en la primera referencia, por lo que no tiene que usar la instrucción Set para asignar la referencia de objeto. La palabra clave New no se puede usar para declarar variables de ningún tipo de datos intrínseco. Tampoco se puede usar para declarar instancias de objetos dependientes y no se puede usar con WithEvents.
type Opcional. Tipo de datos de la variable; 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, un tipo definido por el usuario o un tipo de objeto. Utilizar una cláusula Astype independiente para cada variable que se define.

Comentarios

Las variables declaradas mediante la instrucción Public están disponibles para todos los procedimientos de todos los módulos de todas las aplicaciones a menos que option private module esté en vigor; en cuyo caso, las variables son públicas solo dentro del proyecto en el que residen.

La instrucción Public no puede usarse en módulos de clase para declarar variables de cadena de longitud fija.

Use la instrucción Public para declarar el tipo de datos de una variable. Por ejemplo, la instrucción siguiente declara una variable como Integer:

Public NumberOfEmployees As Integer 

También puede usar una instrucción Public para declarar el tipo de objeto de una variable. La siguiente instrucción declara una variable para una nueva instancia de una hoja de cálculo:

Public X As New Worksheet 

Si la palabra clave Nuevo no se utiliza al declarar una variable de objeto, la variable que hace referencia al objeto debe tener asignado un objeto existente mediante el uso de la instrucción Set antes de poder usarlo. Hasta que se le asigna un objeto, la variable de objeto declarada tiene el valor especial Nothing, que indica que no hace referencia a ninguna instancia determinada de un objeto.

También puede usar la instrucción Public con paréntesis vacíos para declarar una matriz dinámica. Después de declarar una matriz dinámica, use la instrucción ReDim dentro de un procedimiento para definir el número de elementos y dimensiones de la matriz. Si intenta volver a declarar una dimensión para una variable de matriz cuyo tamaño se especificó explícitamente en una instrucción Private, Public o Dim , se produce un error.

Si no especifica un tipo de datos o un tipo de objeto y no hay ninguna instrucción Deftype en el módulo, la variable es Variant de forma predeterminada.

Cuando las variables se inicializan, se inicializa una variable numérica en 0, una cadena de longitud variable se inicializa en una cadena de longitud cero ("") y una cadena de longitud fija se completa con ceros. Las variables Variant se inicializan enEmpty. Todos los elementos de variables de tipos definidos por el usuario se inicializan como si se tratara de variables independientes.

Ejemplo:

Este ejemplo usa la instrucción Public a nivel de módulo (sección General) de un módulo estándar para declarar de forma explícita variables públicas, es decir, como variables que se encuentran disponibles para todos los procedimientos de todos los módulos y todas las aplicaciones, siempre que no se active la opción Módulo de opción privada.

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 

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.