Está en la página 1de 17

Capítulo 2 Introducción a la programación con VBA

2.1 Introducción a Visual Basic Aplicaciones.

Microsoft Excel es una potente aplicación incluida en el paquete Microsoft Office que
proporciona cientos de comandos dentro de grupos y cinta de opciones y más de 400
funciones que se pueden utilizar para manipular, analizar y presentar datos. La hoja de cálculo
permite hacer que el trabajo que se desarrolla diariamente se realice más rápido y confiable y si
a esto le agregamos la herramienta de la programación, hacemos que Excel amplié las
posibilidades para automatizar tareas que se realizan de manera cotidiana, y para crear
aplicaciones basadas en el procesamiento y el análisis de datos numéricos por medio de la
creación de macros.

VBA es la abreviatura de Visual Basic for Aplications en inglés y Visual Basic para Aplicaciones
en español, es un lenguaje de programación común a todas las aplicaciones de Microsoft
Office, como son Excel, Word, PowerPoint y Access.

2.2 Visual Basic (VB) comparado con VBA

Visual Basic (VB) es un lenguaje de programación orientado a objetos desarrollado por


Microsoft Office, este lenguaje tiene su estructura básica en el ya legendario BASIC (Beginner's
All-purpose Symbolic Instruction Code en inglés, Código simbólico de instrucciones de propósito
general para principiantes en español). La principal característica de Visual Basic es que
permite crear programas independientes de su entorno, es decir crear aplicaciones generando
archivos ejecutables y por lo tanto correrlos fuera del entorno de Visual Basic.

Mientras que Visual Basic para Aplicaciones es un lenguaje de programación que se encuentra
embebido en las aplicaciones de Microsoft Office y que permite escribir un conjunto de
instrucciones (macros) para programar los distintos objetos de Excel, como por ejemplo, un libro
de trabajo, una hoja de cálculo, un rango de celdas o un gráfico. De esta manera, es posible
automatizar las tareas que se realizan en forma repetitiva en Excel, y hasta se pueden crear
aplicaciones complejas. Una de las ventajas que tiene VBA, es que no es necesario instalar un
programa para realizar la programación, este ya se encuentra dentro de Excel, únicamente se
requiere realizar la activación en la ventana opciones de Excel para agregar la ficha
programador o desarrollador, mismo que se verá más adelante en este capítulo. Otra ventaja
que tiene programar en el entorno de Excel es que los datos de entrada y los datos de salida
podrán leerse o imprimirse en las hojas de cálculo.

2.3 Que es una macro o procedimiento.

Una macro es sinónimo de procedimiento, rutina o subrutina, por esa razón en VBA las macros
la primera instrucción es la palabra reservada Sub que es la abreviatura de Subrutine. Desde el
punto de vista general, se puede decir que las macros ayudan a automatizar tareas. Son partes
de código de programación que es interpretado por Excel y lleva a cabo distintas acciones o
una sucesión de tareas. También se puede decir que es un conjunto de sentencias de código
que permiten realizar tareas y funciones simples para usos específicos hasta aplicaciones
complejas, así como también expandir e incrementar las prestaciones de Excel.

Al desarrollar una solución en Excel, también tiene acceso a la extensa biblioteca de funciones
de Excel. Todas las funciones (aproximadamente 400) con las que está familiarizado como
usuario de Excel, como Suma, Promedio, Max, ContarA, etc., están disponibles para
desarrollar aplicaciones de una manera fácil y rápida, sin tener que escribir más código que lo
12
necesario. Las macros se escriben dentro de un libro, una hoja, un formulario y la mayoría de
las veces en un módulo.

2.4 Activar de la ficha programador o desarrollador.

El usuario deberá comprobar antes de iniciar con el desarrollo de aplicaciones VBA, si se tiene
activada la ficha programador o desarrollador en la cinta de opciones. En la figura 2.1 podrás
comprobar donde está ubicada esta pestaña.

Verificar si está
activa la ficha

Figura 2.1 Ficha programador en la cinta de opciones

Si el usuario comprueba que esta pestaña no le aparece, habrá que ir a la ficha Archivo y
seleccionar el botón Opciones, lo que hará que se abra la ventana Opciones de Excel, como se
muestra en la figura 2.2. En ésta habrá que seleccionar Personalizar cinta de opciones y en el
cuadro de la derecha habilitar la casilla de verificación Programador y aceptar la modificación.

2.5 Grupos de comandos de la ficha programador

Desarrollador es una de las fichas de la cinta de opciones de la versión 2013 de Office, que en
las versiones 2007 y 2010 se denomina Programador (ver figura 2.3). En ella, se encuentran los
grupos y los comandos que se utilizan para crear, editar y ejecutar macros, así como lo
necesario para gestionar complementos y crear formularios.

Figura 2.3 Grupos y comandos de la ficha programador

13
Habilitar la casilla
de verificación

Figura 2.2 Ventana de Opciones de Excel

Descripción de los comandos de la ficha programador.

Visual Basic: con este icono, se accede al Editor de Visual Basic (VBE). Esta es la
herramienta que se va a emplear para realizar todo el trabajo de programación.
También se puede acceder a él presionando la combinación de teclas Alt + F11.
Macros: abre el cuadro de diálogo Macro, donde se ven y se ejecutan todas las
macros incluidas en los libros abiertos. También se podrán modificar, eliminar o
cambiarles la combinación de teclas, pulsando el botón Opciones….

Grabar macro: con este botón se inicia el proceso de grabación de una macro.

Usar referencias relativas: este botón permite especificar si se desea que las
referencias de las celdas se graben en forma absoluta o relativa. Se puede cambiar de
una forma a otra en cualquier momento, incluso durante la grabación de la macro.
Seguridad de macros: con este botón, se puede personalizar la seguridad de las
macro, es decir, desde aquí es posible habilitar o deshabilitar la ejecución de las
macros.

Complementos: este grupo permite administrar y habilitar todo tipo de complementos


como el caso del complemento Solver o las Herramientas para análisis.

14
Insertar: este botón permite insertar distintos controles en la hoja de cálculo, para
generar una interfaz con el usuario de manera sencilla y profesional. Está dividido en
Controles de formulario y Controles ActiveX. Los de formulario son más simples de
usar, permitiendo manipular datos por medio de barras de desplazamiento, casillas de
verificación, cuadros combinados, entre otros y pueden ser directamente asignados a
una macro (procedimiento estándar). Los de ActiveX son más flexibles y ofrecen más
posibilidades en la interfaz y la programación se realiza asociando los controles a la
hoja de cálculo y por medio de procedimientos de evento.
Modo Diseño: con este botón, se activa o desactiva el modo diseño del proyecto.
Cuando el icono está en color amarillo se encuentra en tiempo de diseño, es decir es
el tiempo durante el cual se pueden realizar cambios a los controles insertados en la
hoja de cálculo. Cuando el icono está en color natural los controles están en tiempo de
ejecución.
Propiedades: con este botón, se pueden cambiar las propiedades de los controles
ActiveX o las opciones de la hoja activa.
Ver código: al presionar este botón, se abrirá el editor de Visual Basic (VBE), donde
se encuentra el código asociado al control seleccionado en tiempo de diseño.
Ejecutar cuadro de diálogo: esta opción permite ejecutar un cuadro de diálogo
personalizado o Userform (formulario) que se diseñó en VBA.

2.6 La extensión con que se guardan los libros de trabajo.

Desde Excel 2007 presenta una forma diferente de guardar los libros, ya que desde esta
versión se crea una separación entre los archivos normales y aquellos que incluyen macros de
Visual Basic para Aplicaciones o controles ActiveX. De esta forma, con sólo ver la extensión del
archivo se puede determinar si contiene código VBA o controles ActiveX. Este cambio se
genera, principalmente, por una cuestión de seguridad, para poder identificar los archivos antes
de abrirlos.

La opción Guardar como presenta dos formas para guardar los libros de trabajo.

Libro de Excel: guarda en el formato predeterminado de archivo, con extensión


.XLSX. Cabe aclarar que estos archivos no pueden contener macros de Visual
Basic para Aplicaciones ni controles ActiveX.
Libro de Excel habilitado para macros (ver figura 2.4): de esta forma se deben
guardar los archivos que posean macros o controles ActiveX, en los que la
extensión será .XLSM. Al grabar un archivo que contenga este tipo de datos, Excel
advertirá que posee macros y que se deben grabar con esta extensión particular.
De omitir esta advertencia, el libro se guardará con la extensión predeterminada y
se eliminará todo código de macro o control ActiveX incluido

15
Figura 2.4 Guardar archivo con extensión .XLSM

2.7 El editor de Visual Basic para Excel.

En este punto se describe la forma de entrar al editor de Visual Basic, conocido como VBE por
sus siglas en inglés. Únicamente se menciona las partes fundamentales para escribir código de
programación, ya que en un capítulo posterior se detallarán todas las opciones del VBE.

Una forma de abrir la ventana del VBE, es por medio de la ficha Programador → Grupo código
→ comando Visual Basic. Una segunda forma es por medio del método abreviado con la
combinación de teclas Alt + F11. Después de abrir la ventana del VBE, la mayor parte está en
color gris indicando que no existe programa alguno en el libro como aparece la figura 2.5.

Para crear la primer macro o procedimiento, se realiza a través del menú Insertar y luego
presionar la opción módulo. Observa como la opción Procedimiento aparece atenuado,
indicando que no se puede insertar un procedimiento si no existe un módulo. Ver figura 2.6.

Después de haber insertado un módulo, aparece en la ventana de VBAProyect (Libro1) que se


denomina también ventana del explorador de proyectos. Ver figura 2.7. De esta manera ya es
posible insertar un procedimiento, por lo que se selecciona el menú Insertar y enseguida la
opción Procedimiento, abriéndose el cuadro de diálogo de la figura 2.8. Por lo pronto se le da
un nombre adecuado al procedimiento, en este caso se le llamará Mi_Primer_Macro (no usar
espacios) y presionar el botón aceptar. Después de eso el VBE agregará las sentencias como
se muestra en la figura 2.9

Figura 2.5 Pantalla del Editor de Visual Basic


16
Figura 2.6 Insertar un módulo

Figura 2.7 Pantalla con un Módulo1


Este código tiene dos líneas de programación que significa cada una de ellas:

1. Public Sub Mi_Primer_Macro()

Public es palabra reservada y significa que es un procedimiento público, más adelante


se hará la distinción entre procedimiento público y procedimiento privado.

Sub es palabra reservada y una abreviatura de Subrutine.


Mi_Primer_Macro es el nombre que se le dió al procedimiento o macro.

2. End Sub significa final del procedimiento.

Entre estas dos líneas de programación, se incluirán todas las sentencias que se necesiten para
resolver un problema con VBA. En este caso se agregará la sentencia MsgBox “Bienvenido a la
programación” y se ejecutará el programa presionando la tecla F5, obteniéndose el cuadro de
mensaje como se muestra en la figura 2.10.

Figura 2.8 Cuadro de diálogo Agregar procedimiento


17
Figura 2.9 Primer procedimiento

Figura 2.10 Pantalla con el cuadro de mensaje

Nota:
Cuando una expresión se encuentra entre corchetes ([ ]) es opcional el uso de ella:

2.8 Identificadores

Un identificador es un nombre simbólico que se refiere a un dato o programa determinado. Es


muy fácil elegir identificadores cuyo nombre guarde estrecha relación con el sentido físico,
matemático o real del dato que representan. Así por ejemplo, es lógico utilizar un identificador
llamado Promedio_Total o PromedioTotal para representar el promedio general de un alumno.

Vsual Basic Aplicaciones, como todos los demás lenguajes de programación, tiene sus propias
reglas para elegir los identificadores. Los usuarios pueden elegir con gran libertad los nombres
de las variables, constantes, etiquetas, procedimientos y funciones, teniendo siempre cuidado
de respetar las reglas del lenguaje y de no utilizar un conjunto de palabras reservadas, que son
utilizadas por el propio lenguaje como son Public, Sub, Dim, For, To, End, Loop, Next, Do,
Case, If, etc. Las palabras reservadas del lenguaje aparecen en color azul en el Editor de Visual
Basic.

El nombre de un identificador tiene que comenzar siempre por una letra y puede tener una
longitud máxima de 255 caracteres. Se pueden utilizar dígitos y no se admiten espacios, ni otro
carácter que no sea el guión bajo.
18
A diferencia de otros lenguajes de programación, Visual Basic Aplicaciones, no distingue entre
minúsculas y mayúsculas, por tanto, los identificadores CalculoIva y calculoiva son
consideradas como idénticos (el mismo identificador).

Ejemplos de nombres de identificadores correctos e incorrectos:

Identificador Incorrecto
Identificador Correcto
Identificador Razón de ser incorrecto
Calculo_de_Area Precio total Espacio no valido
Precio2017 Suma/valor / Carácter no valido
ALUMNO _IVA Guión bajo al inicio
HacerBordes 10CALCULO Dígito al inicio
Ir_a Exit Palabra reservada
Unavariableconvarioscaracteres Each Palabra reservada

2.9 Tipos de datos

Es común guardar valores temporalmente cuando se programa en algún lenguaje de


programación. Por ejemplo, se almacenan los valores de las materias acreditadas y
calificaciones de los alumnos para luego usarlos para la impresión del kardex.

Una variable es el elemento del código que se usa para guardar valores o información temporal
para la ejecución de un programa. El contenido que se guarda en la variable es la información
que servirá para manipular y se llama valor de la variable. Se puede decir que las variables son
los identificadores mediante los cuales se hará referencia a una determinada información dentro
del procedimiento. El uso de variables se debe a que en la mayoría de las ocasiones, no se
tiene la información que se manipulará, sino que esta se va a generar o a solicitar en un
determinado momento. (Viviana)

2.9.1 Declaración de variables de manera implícita.

En VBA, no es necesario declarar una variable antes de usarla, porque el lenguaje la creará en
forma automática cuando se le asigna un valor al nombre de dicha variable. Por ejemplo, se
puede crear de manera implícita las siguientes variables:

Pi = 3.1415926
i = 20
Curso = “Programación en VBA”

Aunque es cómodo no declarar las variables antes de usarlas, existen varias razones por las
cuales es conveniente realizar la declaración de manera explicita (ver punto 2.9.5).

2.9.2 Declaración de variables de manera explícita.

Declarar una variable de manera explícita significa que se debe definir los nombres de todas las
variables que se van a utilizar antes de usarlas en el código VBA. Para poder realizar esta
declaración, se tiene que usar la sentencia Dim, seguida del nombre de la variable. De esta
manera se debe proceder con cada una de las variables que se vayan a incluir en el código,
como se muestra en el código 2.1.

19
Sub Calcula_Edad()
Dim Edad, Dias
Edad = InputBox("Introduce tu edad en años: ")
Dias = Edad * 365.25
MsgBox Dias
End Sub
Código 2.1 Declaración de variables de manera explícita

En este procedimiento se declararon las variables Edad y Dias, usando un tipo de datos Variant
de manera predeterminada, que significa variante o de cualquier tipo. Se verá más adelante que
es conveniente usar el tipo de datos adecuado a lo que guardara la variable a usarse.

2.9.3 Tipos de variables.

Las variables pueden almacenar diferentes tipos de datos. El tipo de dato es el que determina la
naturaleza del conjunto de valores que puede tomar una variable. Todos los datos tienen un tipo
asociado con ellos. Un dato puede ser un simple carácter, tal como la letra A o un valor entero
como, por ejemplo 52. Cuando se declara una variable, también se le puede proporcionar el tipo
de dato que guardará. Para ello, se emplea la siguiente sentencia:

Dim | Private | Public | Static nombre_de_variable [As tipo_de_dato]

Dim Las variables declaradas con esta sentencia a nivel de módulo estarán disponibles para
todos los procedimientos del módulo. No son accesibles desde ningún otro módulo. En el caso
que sean declaradas a nivel de procedimiento solamente estarán disponibles dentro del
procedimiento.

Private Las variables declaradas con esta sentencia, solamente estarán disponibles para el
módulo en el que sean declaradas.

Public Las variables declaradas con esta sentencia, estarán disponibles en todo el proyecto.

Static Las variables declaradas con esta sentencia a nivel de procedimiento, conservan su
valor mientras dure la ejecución del código.

La palabra clave As permite definir el tipo de dato o de objeto de la variable que se va a


declarar. Los tipos de datos definen la clase de información que se va almacenar en la variable.
VBA soporta los tipos de datos que se indican a continuación:

1. Datos de tipo numérico.


2. Datos de tipo fecha u hora.
3. Datos de tipo texto.
4. Datos de tipo lógico.
5. Datos de tipo variante.
6. Datos de tipo objeto.

20
1. Datos de tipo numérico.

VBA permite trabajar con datos numéricos enteros y datos numéricos de punto flotante, o
también conocidos como números reales o números fraccionarios. Los tipos de datos numéricos
son los siguientes:

Tipo Byte. Las variables declaradas con este tipo pueden almacenar números enteros
comprendidos entre 0 y 255. Estos datos ocupan un byte en la memoria.

Dim No_Aulas As Byte

Tipo Integer. Las variables declaradas con este tipo pueden almacenar números enteros
comprendidos entre -32768 y 32767. Estos datos ocupan 2 bytes en la memoria. Puede usarse
el carácter % al final del nombre de la variable para declararse con este tipo.

Dim No_Alumnos As Integer


Dim No_Piezas%

Tipo Long. Las variables declaradas con este tipo pueden almacenar números enteros
comprendidos entre -2147483648 y 2147483647. Estos datos ocupan 4 bytes en la memoria.
Puede usarse el carácter & al final del nombre de la variable para declararse con este tipo.

Dim No_Filas As Long


Dim Habitantes&

Tipo Single. Las variables declaradas con este tipo pueden almacenar números reales de 32
bits con una precisión de 7 decimales que van de -3.402823E38 a -1.4012098E-45 para valores
negativos y de 1.401298E-45 a 3.402823E38 para valores positivos. Estos datos ocupan 4
bytes en la memoria. Puede usarse el carácter ! al final del nombre de la variable para
declararse con este tipo.

Dim Calificacion As Single


Dim Estatura!

Tipo Double. Las variables declaradas con este tipo pueden almacenar números reales de 64
bits con una precisión de 16 decimales que van de -1.79769313486231E308 a -
4,94065645841247E-324 para valores negativos y de 4,94065645841247E-324 a
1,79769313486232E308 para valores positivos. Estos datos ocupan 8 bytes en la memoria.
Puede usarse el carácter # al final del nombre de la variable para declararse con este tipo.

Dim No_Aleatorio As double


Dim Distancia#

Tipo Currency. Las variables declaradas con este tipo pueden almacenar números reales que
van de -922337203685477.5808 a 922337203685477.5807. Este tipo nos permite manejar
valores con una precisión de 15 dígitos a la izquierda del punto decimal y 4 dígitos a la derecha.
Esta clase de datos la usamos para realizar cálculos de tipo monetario, donde se necesita evitar
errores de redondeo. Estos datos ocupan 8 bytes en la memoria. Puede usarse el carácter @ al
final del nombre de la variable para declararse con este tipo.
21
Dim Precio As Currency
Dim Costo@

2. Datos de tipo fecha u hora.

Tipo Date. Las variables declaradas con este tipo pueden almacenar fechas y horas como un
número real. Estos datos ocupan 8 bytes en la memoria.

Dim Dia As Date


Dim Hora As Date

3. Datos de tipo texto.

Tipo String. Las variables declaradas con este tipo consisten en una secuencia de caracteres
contiguos de cero o más caracteres correspondientes al código ASCII. Es decir, se trata de una
cadena de caracteres que puede incluir letras, números, espacios y signos de puntuación. Los
datos almacenados en una variable de tipo String serán tratados como texto y no como
números. Puede usarse el carácter $ al final del nombre de la variable para declararse con este
tipo.

Dim Carrera As String


Dim No_Control$

De forma predetermina, en VBA, las variables de tipo String son de longitud variable, es decir la
cadena crece y disminuye según se le asigne nuevos datos. Aunque también se puede declarar
cadenas de longitud fija que permiten indicar un número específico de caracteres. Para
declararlas se utiliza el asterisco (*) seguido del número de caracteres. Por ejemplo, si
queremos declarar la variable Nombre con una longitud fija de 5 caracteres, se usa la siguiente
sentencia:

Dim Nombre As String * 5

4. Datos de tipo lógico.

Tipo Boolean. Las variables declaradas son tipo lógico; esto quiere decir que pueden tomar
solo dos valores posibles: True (verdadero) y False (falso). El valor por defecto es False. Estos
datos ocupan 2 bytes en la memoria.

Dim Pasa_No_Pasa As Boolean

5. Datos de tipo variante.

Los datos Variant pueden contener datos de todo tipo, además de los valores especiales
Empty, Error y Null. Se utilizan para declarar una variable cuyo tipo no se especifica en forma
explícita. Cuando se declara una variable sin especificar el tipo que va a contener o devolver,
VBA la declara como un tipo Variant.

Dim Estatura as Variant


Dim Unidades_Vendidas ‘de manera predeterminada es de tipo Variant
22
6. Datos de tipo objeto.

Este tipo de variable permite almacenar referencias a objetos. De esta manera, se puede
acceder a las propiedades y métodos de un objeto a través de la variable. Para declarar una
variable Object cuando no se conoce el tipo de objeto, se usa la siguiente sentencia:

Dim Buscar As Object

Para declarar una variable Object cuando se conoce el tipo de objeto, se usa la sentencia:

Dim Nombre_de_Variable As Tipo_de_Objeto

Donde Tipo_de_Objeto debe ser uno de los tipos de objetos de VBA, como por ejemplo,
WorkBook, Worksheet, Range, Chart, etc.

Dim Libro As WorkBook, Hoja As Worksheet, Rango As Range

Notas:
En una línea de programación se pueden declarar dos o más variables, separadas por
comas e indicando el tipo de dato que almacenarán.

Para asignarle un objeto a una variable de tipo Object, se usa la sentencia Set.
Sub Cambia_Color()
Dim Rango As Range
Set Rango = Range(“A1:D30”)
End Sub

2.9.4 Las constantes.

Las constantes como su nombre lo indica, son valores que no varían, es decir conservan su
valor durante toda la ejecución de la aplicación. Se utilizan por lo general, para almacenar
valores que reaparecen una y otra vez o para almacenar números que resulten difíciles de
recordar. Tienen igual alcance que una declaración de variable, se puede declarar constantes a
nivel procedimiento, módulo o proyecto. La sintaxis para declarar una constante es la siguiente:

[Public | Private] Const nombre_de_constante [As tipo] = expresión

Donde:

• nombre_de_constante: es un nombre válido que se le da a la constante.


• expresión: puede estar compuesta por constantes y operadores de numéricos o de
cadena de caracteres.

Const pi As Double = 3.14159265359


Const Filas As Long = 2 ^ 20

23
2.9.5 Obligar a declarar variables.

La declaración de variables agiliza el consumo de memoria y hace que el código se ejecute más
rápido. Si no se declaran las variables VBA manipula todas las variables como Variant siendo el
consumo de memoria bastante mayor. Otra razón de porque es necesario declarar las variables
es que si se escribe mal el nombre de la variable, VBA no reconoce este error y existe el riesgo
de obtener resultados indeseables y consumir mucho tiempo en la depuración de un programa.

Por lo tanto conviene preparar el editor de macros, para que se esté obligado de declarar todas
las variables a usarse en la aplicación. Esto se realiza desde el editor de VBA, a través del
menú Herramientas → Opciones → pestaña Editor > y seleccionar la casilla de verificación
Requerir declaración de variables. Con esta acción cada vez que se inserte un nuevo módulo
en el editor de Visual Basic, el módulo añadido incluirá automáticamente la sentencia Option
Explicit al inicio del módulo, como se ve en la figura 2.11.

Figura 2.11 Sentencia Option Explicit al inicio de módulo

2.9.6 Alcance de una variable.

Las variables o constantes se pueden definir en dos ubicaciones, dentro de un procedimiento y


también en la parte superior de un módulo en una sección llamada área general de
declaraciones. La ubicación de una declaración de variable determina su alcance. Cuando se
crea una variable dentro de un procedimiento, sólo ese procedimiento lo sabrá. Ningún otro
procedimiento podrá usar esa variable y ese valor. Se conoce como variable de nivel de
procedimiento o variable local debido a que se ubica dentro del procedimiento que la define. Si
se define en el área general de declaraciones, entonces esa variable tendrá un alcance en el
módulo y por lo tanto podrá usarse en cualquier procedimiento del mismo.

Existe otro nivel de alcance llamado Public. Las variables de nivel público se pueden utilizar en
cualquier procedimiento de su aplicación, ya sea que ese procedimiento esté o no en el mismo
módulo dónde se definió la variable o la constante. Esto hace que las variables de nivel público
sean muy flexibles, pero también significa que se cargarán en la memoria todo el tiempo que se
esté ejecutando la aplicación Para crear una variable de nivel público, emplee la sentencia
Public. Para crear una variable pública, utilice la siguiente sintaxis:

Public nombre_de_variable As tipo_de datos

Las variables y constantes públicas necesitan ser definidas en el área General de declaraciones
ubicada en la parte superior del módulo. El alcance de una variable determina cuales
procedimientos pueden utilizarla. Se agrega el ejemplo en el código 2.1 y código 2.2, para
comprender esta parte importante de la programación, las dudas que pudieran surgir serán
aclaradas en los temas que se expondrán en capítulos posteriores.

24
Option Explicit
Public Variable_A As Integer
Private Variable_B As Single
Public Sub Procedimiento_A()
Dim Variable_C As Single
Variable_A = 1
Variable_B = Variable_A * 10
Variable_C = Sin(Variable_A) ‘Asigna el valor de la función seno
MsgBox Variable_B ‘Despliega 10 en la caja de mensaje
MsgBox Variable_C ‘Despliega el seno de un radian (0.841471)
End Sub
Private Sub Procedimiento_B()
Dim Variable_D As Integer
Variable_A = Variable_A + 1
Variable_D = Variable_A * 10
Variable_B = Sin(Variable_A) ‘Asigna el valor de la función seno
MsgBox Variable_D ‘Despliega 20 en la caja de mensaje
MsgBox Variable_B ‘Despliega el seno de dos radianes (0.9092974)
End Sub

Código 2.2 Procedimientos que se encuentran en el módulo 1

Option Explicit
Private Variable_E As Single
Private Sub Procedimiento_C()
Dim Variable_F As Integer
Variable_A = Variable_A + 1
Variable_F = Variable_A * 10
Variable_E = Sin(Variable_A) ‘Asigna el valor de la función seno
MsgBox Variable_F ‘Despliega 30 en la caja de mensaje
MsgBox Variable_E ‘Despliega el seno de 3 radianes(0.14112)
Variable_E = Funcion_D(Variable_A)
MsgBox Variable_E ‘Despliega el coseno de 3 radianes(-0.9899925)
End Sub
Public Function Funcion_D(Rad)
Dim Variable_G As Single
Variable_G = Cos(Rad) ‘Asigna el valor de la función coseno
Funcion_D = Variable_G
End Function

Código 2.3 Procedimientos que se encuentran en el módulo 2


25
Descripción del alcance de las variables:

• La Variable_A que se declara como pública, pueden verla todos los procedimientos de
los módulos 1 y 2.
• La Variable_B que se declara como privada sólo pueden verla el Procedimiento_A y el
Procedimiento_B que se encuentran en el módulo 1.
• La Variable_E que se declara como privada en el módulo 2, sólo pueden verla el
Procedimiento_C y la Funcion_D.
• La Variable_C sólo la puede ver el Procedimietno_A, dado que es local a ese
procedimiento del módulo 1. Lo mismo sucede con la Variable_D, la Variable_F y la
Variable_G, en los diferentes procedimientos donde se han declarado.

Descripción del alcance de los procedimientos:

• El Procedimiento_A y la Funcion_D pueden ejecutarse desde cualquier procedimiento


de cualquiera de los 2 módulos, ya que se han declarado como públicos.
• El Procedimiento_B y el Procedimietno_C sólo pueden ser ejecutados desde un
procedimiento en el módulo donde se encuentran, ya que se han declarado como
privados.

2.10 Los operadores y orden de prioridad.

Las variables y constantes se pueden procesar utilizando operaciones y funciones adecuadas a


sus tipos de datos. Una operación es un conjunto de datos o funciones unidas por operadores,
ya sea para modificar un valor o para producir un nuevo valor. Los operadores soportados por
VBA son: operadores aritméticos (tabla 2.1), operadores relacionales o de comparación (tabla
2.2) y operadores lógicos. (tabla 2.3).

Operador Operación Orden de prioridad


+ Suma 6
- Resta 6
* Multiplicación 3
/ División fraccionaria 3
\ División entera 4
^ Exponenciación 1
Mod Residuo de una división 5
entera
– Negación 2
& Concatenación de cadenas 7
Tabla 2.1 Operadores aritméticos

Operador Operación Orden de prioridad


= Igual a 8
<> Diferente de 8
> Mayor que 8
>= Mayor o igual que 8
< Menor que 8
<= Menor o igual que 8
Tabla 2.2 Operadores relacionales o de comparación

26
Operador Operación Orden de prioridad
AND Conjunción lógica (Y) 10
OR Disfunción lógica (O) 11
NOT Negación lógica 9
XOR Exclusión lógica 12
Tabla 2.3 Operadores lógicos

Orden de prioridad de las operaciones

Cuando en una expresión coinciden diferentes operadores, es necesario saber cual operación
se ejecuta antes, por lo que existen niveles de prioridad. Se ejecutan en primer lugar todas las
operaciones que contienen los operadores de más alta prioridad y a continuación los de menos
prioridad. En caso de coincidir en una expresión dos o más operadores de igual prioridad, se
ejecutan de izquierda a derecha. Si por alguna razón se desea que se ejecuten en otro orden,
se hace uso de paréntesis.

En las tablas 2.1, 2.2 y 2.3 aparece el orden de prioridad de los operadores. La prioridad más
alta es la de uno, que corresponde al operador de exponenciación (^), le sigue la de 2 que es el
de negación (–) y así sucesivamente hasta llegar al de prioridad más baja que es la de 12, que
corresponde al operador de exclusión lógica (XOR). En la tabla 2.4 se presentan 5 ejemplos.

Expresión Resultado Detalle del orden de ejecución


x = -2 ^ 5 -32 Eleva 2 a la 5 = 32 y lo multiplica por menos
y=2+5*3 17 Multiplica 5 * 3 y le suma 2
Divide 25 entre 4 = 6, Resto de la división 6 entre
z = 25 \ 4 Mod 5 + 20 21
5 = 1 y le suma 20
Suma 5 + 3 = 8, resta 20 – 10 = 10 y compara 8 >
d = 5 + 3 > 20 – 10 Falso
10
Eleva 2 a la 4 = 16, compara con 10 = Verdadero
Divide 30 entre 7 = 4, compara con 10 =
t = 2 ^ 4 > 10 And 30 \ 7 < 10 Verdadero
Verdadero. Verdadero AND Verdadero, resultado
Verdadero
Tabla 2.4 Ejemplos de prioridad de las operaciones

2.11 Los comentarios y la sangría en el código de VBA.

Los comentarios son una herramienta para documentar los programas. Se identifican con una
comilla simple (‘) al inicio del línea donde se agregará el comentario, pero también se puede
usar al final de una sentencia. VBA cuando encuentra una comilla simple hace caso omiso de lo
se encuentra después de éste, de la misma manera el texto aparece en el VBE en color verde.

En el código 2.4, en las líneas de programación 4, 5, y 6 se agregan comentarios al inicio de los


renglones y en la línea 7 se agrega comentario al final de la sentencia.

La sangría o espaciado que se usa al inicio de una línea de programación es opcional, pero es
una buena práctica de programación, ya que hace que el código sea más legible, sobre todo en
programas que requieran usar cientos de sentencias. Invariablemente a lo largo de los capítulos
se usarán las sangrías necesarias.

27
2.12 Concatenación de cadenas de texto.

Una cadena de caracteres o simplemente cadena, es un valor de texto que consiste en una
serie o secuencia de caracteres. Las cadenas se escriben encerradas entre comillas dobles.

Constante de cadena: “Instituto Tecnológico”

Variable de cadena: Nombre = “Jorge Antonio”

La longitud de una cadena es igual al número de caracteres que contiene, incluyendo los
espacios, ya que éste también es un caracter.

Función integrada desde Excel: =Largo(“Instituto Tecnológico”), devuelve el número 21

Función de VBA: MsgBox Len(“Programación”), Imprime en la caja de mensaje el número 12

Si se necesita combinar cadenas de texto, utilice el carácter de concatenación de cadenas (&).


El siguiente ejemplo de concatenación se ilustra en el código 2.4:

Sub Concatena_Cadenas()
Dim Nombre As String, Cadena As String
Nombre = InputBox(“Introduce tu nombre: “)
'La siguiente línea de código une la cadena Hola y el valor
'de Nombre para que se despliegue como una sola cadena
'en un cuadro de mensaje.
MsgBox “Hola “ & Nombre ‘Imprime Hola unido al nombre
Cadena = “Este es un ejemplo del uso de la concatenación ”
Cadena = Cadena & “de cadenas para unir cadenas “
Cadena = Cadena & “largas." & vbNewLine
Cadena = Cadena & “La constante vbNewLine le permite “
Cadena = Cadena & “agregar saltos de línea a las cadenas.”
MsgBox Cadena
End Sub

Código 2.4 Concatenación de cadenas

28

También podría gustarte