Share via


Cómo: Controlar el ámbito de una variable (Visual Basic)

Normalmente, una variable está en ámbito, o visible para referencia, en toda la región donde se declara. En algunos casos, el nivel de acceso de la variable puede influir en su ámbito.

Para obtener más información, vea Ámbito en Visual Basic.

Ámbito en el nivel de bloque o procedimiento

Para hacer que una variable sea visible sólo dentro de un bloque

  • Coloque Instrucción Dim (Visual Basic) para la variable entre las instrucciones de declaración de inicio y fin de ese bloque, por ejemplo entre las instrucciones For y Next de un bucle For.

    Sólo puede hacer referencia a la variable desde dentro del bloque.

Para hacer que una variable sea visible sólo dentro de un procedimiento

  • Coloque la instrucción Dim para la variable dentro del procedimiento pero fuera de cualquier bloque (como un bloque With...End With).

    Sólo puede hacer referencia a la variable desde dentro del procedimiento, incluyendo dentro de cualquier bloque contenido en el procedimiento.

Ámbito en el nivel de módulo o espacio de nombres

Por comodidad, el término nivel de módulo se aplica por igual a módulos, clases y estructuras. El nivel de acceso de una variable de nivel de módulo determina su ámbito. El espacio de nombres que contiene el módulo, la clase o la estructura también influye en el ámbito.

Para hacer que una variable sea visible en todo un módulo, clase o estructura

  1. Coloque la instrucción Dim para la variable dentro del módulo, clase o estructura, pero fuera de cualquier procedimiento.

  2. Incluya la palabra clave Private (Visual Basic) en la instrucción Dim.

  3. Puede hacer referencia a la variable desde cualquier parte dentro del módulo, clase o estructura, pero no desde fuera de él.

Para hacer que una variable sea visible en todo un espacio de nombres

  1. Coloque la instrucción Dim para la variable dentro del módulo, clase o estructura, pero fuera de cualquier procedimiento.

  2. Incluya la palabra clave Friend (Visual Basic) o Public (Visual Basic) en la instrucción Dim.

  3. Puede hacer referencia a la variable desde cualquier parte dentro del espacio de nombres que contiene el módulo, clase o estructura.

Ejemplo

En el ejemplo siguiente se declara una variable en el nivel de módulo y se limita su visibilidad al código dentro del módulo.

Module demonstrateScope
    Private strMsg As String
    Sub initializePrivateVariable()
        strMsg = "This variable cannot be used outside this module."
    End Sub
    Sub usePrivateVariable()
        MsgBox(strMsg)
    End Sub
End Module

En el ejemplo anterior, todos los procedimientos definidos en el módulo demonstrateScope pueden hacer referencia a la variable String strMsg. Cuando se llama al procedimiento usePrivateVariable, se muestra el contenido de la variable strMsg en un cuadro de diálogo.

La siguiente modificación del ejemplo anterior permite que el código haga referencia a la variable de cadena strMsg en cualquier parte del espacio de nombres de su declaración.

    Public strMsg As String

Programación eficaz

Cuanto más estrecho sea el ámbito de una variable, menos probabilidades tendrá de hacer referencia accidentalmente a ella en lugar de a otra variable con el mismo nombre. También puede minimizar los problemas de concordancia de referencias.

Seguridad

Cuanto más estrecho sea el ámbito de una variable, menos posibilidades habrá de que un código malintencionado puede hacer un uso indebido de ella.

Vea también

Referencia

Instrucción Dim (Visual Basic)

Conceptos

Ámbito en Visual Basic

Período de duración en Visual Basic

Niveles de acceso en Visual Basic

Variables en Visual Basic

Declaración de variable en Visual Basic