0% encontró este documento útil (0 votos)
961 vistas

Manual VBA Excel 2022 RESUMIDO

Este documento presenta una introducción al lenguaje de programación Visual Basic para Aplicaciones (VBA) y su uso en Microsoft Excel. Explica los objetivos de VBA, su estructura, acceso y entorno de desarrollo. También describe conceptos como módulos, procedimientos, variables, estructuras de decisión y ciclo, operadores y funciones matemáticas. El objetivo es proporcionar una guía básica sobre programación en VBA aplicada a la asignatura de Programación y Métodos Numéricos.

Cargado por

Cruzito Olalde
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
961 vistas

Manual VBA Excel 2022 RESUMIDO

Este documento presenta una introducción al lenguaje de programación Visual Basic para Aplicaciones (VBA) y su uso en Microsoft Excel. Explica los objetivos de VBA, su estructura, acceso y entorno de desarrollo. También describe conceptos como módulos, procedimientos, variables, estructuras de decisión y ciclo, operadores y funciones matemáticas. El objetivo es proporcionar una guía básica sobre programación en VBA aplicada a la asignatura de Programación y Métodos Numéricos.

Cargado por

Cruzito Olalde
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 39

TecNM en Celaya

Programación
y
Métodos Numéricos

Semestre Agosto Diciembre 2022

Profesor: Sergio Marcial Palma

1
Contenido

1 INTRODUCCIÓN. ........................................................................................................5

2 ¿QUÉ ES VBA? .............................................................................................................6

2.1 Objetivos del lenguaje VBA. ..................................................................................6

2.2 Estructura de VBA. .................................................................................................6

2.3 Escritura de código VBA. .......................................................................................7

2.4 Acceso al lenguaje VBA. ........................................................................................7

2.4.1 Descripción de la pestaña Desarrollador. ...........................................................8

2.4.2 Las macros y la seguridad. ...............................................................................10

2.5 El entorno de VBE. ............................................................................................... 11

2.6 Descripción del entorno VBE. ..............................................................................12

3 MÓDULOS. .................................................................................................................15

3.1 Presentación. .........................................................................................................15

3.2 Acceso a los módulos............................................................................................ 16

3.3 Importar y exportar código VBA. .........................................................................16

4 PROCEDIMIENTOS. ..................................................................................................17

4.1 Definiciones. .........................................................................................................17

4.2 Acceso a los procedimientos. ................................................................................17

4.3 Procedimientos Sub. ............................................................................................. 18

4.4 Procedimientos Function. .....................................................................................18

4.5 Declaración de procedimientos. ............................................................................18

4.6 Alcance de los procedimientos. ............................................................................19

4.7 Argumentos de los procedimientos. ......................................................................19

2
4.8 Ejemplos de procedimientos y funciones ............................................................. 20

4.9 Variables. ..............................................................................................................20

4.9.1 Tipos de variables. ............................................................................................ 21

4.9.2 Declaración de variables...................................................................................22

4.9.3 Declaración de los tipos de variables. .............................................................. 24

5 ESTRUCTURAS DE DECISIÓN. ..............................................................................26

5.1 Instrucción If. ........................................................................................................26

5.2 Instrucción Select Case. ........................................................................................29

6 ESTRUCTURAS EN CICLO. .....................................................................................30

6.1 Instrucción Do...Loop. .......................................................................................... 30

6.1.1 Sintaxis 1 ..........................................................................................................30

6.1.2 Sintaxis 2. .........................................................................................................31

6.1.3 Sintaxis 3 ..........................................................................................................31

6.1.4 Sintaxis 4. .........................................................................................................32

6.2 Instrucción While...Wend .....................................................................................32

6.3 Instrucción For...Next ........................................................................................... 33

6.4 Instrucción For Each...Next ..................................................................................33

6.5 Salir de las estructuras de control. ........................................................................34

6.6 Reglas de escritura del código. .............................................................................34

7 OPERADORES. ...........................................................................................................36

7.1 Operadores aritméticos. ........................................................................................36

7.2 Operadores de comparación. .................................................................................36

7.3 Operadores lógicos................................................................................................ 37

7.4 Operador de concatenación. ..................................................................................38

7.5 Prioridad de los operadores. ..................................................................................38

3
8 FUNCIONES MATEMÁTICAS. ................................................................................39

4
1 INTRODUCCIÓN.
El presente material está ordenado para cubrir la parte básica de la programación en la
materia de Programación y Métodos Numéricos, por lo que no se profundizará en las múltiples
herramientas que contiene el lenguaje Visual Basic.

5
2 ¿QUÉ ES VBA?
Visual Basic for Applications (VBA), es un lenguaje de programación macro basado en
Microsoft Visual Basic. Es útil en el desarrollo de aplicaciones insertadas en programas de Microsoft
Office (Word, Access, Excel, Outlook y PowerPoint), y que es usado comúnmente en Microsoft Excel
(Excel Visual Basic).

2.1 Objetivos del lenguaje VBA.

Trabajando en Excel, el lenguaje VBA permite:

1. Automatizar acciones repetitivas. Con VBA puede realizar en una única operación todo
un grupo de comandos de Excel.
2. Interactuar sobre los libros de Excel. El contenido y la presentación de todos los
elementos incluidos en un libro (hojas, celdas, gráficos, etc.) se pueden modificar a través
de código VBA.
3. Crear formularios personalizados. Los formularios son los cuadros de diálogo
compuestos por controles ActiveX (cuadros de texto, listas desplegables, etc.), a los que
se les puede asociar código VBA. Los formularios permiten crear interfaces amigables
para la entrada o la salida de información.
4. Generar automáticamente tablas dinámicas y gráficos. Así podrá automatizar la
creación de estadísticas a partir de sus datos de Excel (o de los datos de la empresa
exportados a Excel).
5. Personalizar la interfaz de Excel. La cinta de opciones de Office 2016 es totalmente
personalizable y se pueden asociar macros creadas en lenguaje VBA a los comandos de la
cinta o a la barra de herramientas de acceso rápido.
6. Modificar las opciones de Excel. A cada opción de Excel le corresponde una propiedad
de un objeto VBA. Por ejemplo, puede modificar el tipo de fuente por defecto a partir de
las propiedades StandardFont (fuente) y StandardFontsize (tamaño de fuente) del objeto
Application.
7. Comunicar Excel con otras aplicaciones de Microsoft Office. VBA permite
intercambiar información entre las aplicaciones de Office usando objetos específicos
propios de cada uno. Por ejemplo, usted puede insertar una tabla o un gráfico de Excel en
un archivo de Word, crear mensajes de Outlook con un archivo de Excel adjunto, etc.

2.2 Estructura de VBA.

Usar VBA requiere del conocimiento y noción de las posibles estructuras que se generan
una vez que se accede a él, entre otras, se exponen las más importantes y útiles para los fines del
curso.

6
Proyecto. Cada libro abierto en Excel tiene asociado un proyecto que contiene todos los
módulos de código VBA agrupados en categorías.

Módulo. Los módulos contienen las macros grabadas y sus propios procedimientos y
funciones escritos en VBA. Los módulos se pueden exportar como archivos independientes para
luego ser importados en otros libros. Estos módulos serán los espacios donde se insertarán los
códigos de los programas del presente curso.

Procedimiento. Los procedimientos son subprogramas escritos en VBA y los hay de dos
formas: Sub y Function. Cada macro grabada genera un procedimiento con el mismo nombre de la
macro. De la misma manera, puede crear procedimientos usando la instrucción Sub.

Función. Las funciones son procedimientos que devuelven un valor. Para crear una función,
se debe utilizar la instrucción Function.

2.3 Escritura de código VBA.

Hay dos maneras de crear un procedimiento VBA:

1. Generar automáticamente el código a partir de la grabación de macros.


2. Escribir directamente el código del procedimiento en el Editor de Visual Basic (o entorno
VBE). Esta es la forma que se implementará cada vez que se conforme un programa.

La primera solución es más sencilla, pero mucho más limitada que la segunda. Los
procedimientos generados automáticamente solo permiten automatizar acciones repetitivas realizadas
con Excel (formato de celdas, ordenar datos, etc.).

Si se desea efectuar operaciones específicas, como algoritmos de cálculo, intercambio de


mensajes y de información con el usuario, controlar la coherencia de datos en un libro o cualquier
otra operación que haga uso de estructuras repetitivas o condicionales, se debe crear los propios
procedimientos en el editor de VBA.

2.4 Acceso al lenguaje VBA.

El acceso a VBA desde Excel implica mostrar la pestaña Desarrollador o Programador en la


cinta de opciones de Excel, lo cual se realiza de la siguiente manera.

1. Hacer clic en la pestaña Archivo y luego en Opciones.


2. Seleccionar la categoría Personalizar cinta de opciones.
3. Dentro de Personalizar cinta de opciones, en la lista Pestañas principales, marcar la
opción Desarrollador o Programador.
4. Hacer clic en el botón Aceptar: la pestaña Desarrollador o Programador se añadirá a la
cinta de opciones de Excel, a la derecha de la pestaña Vista.

7
2.4.1 Descripción de la pestaña Desarrollador.

a) Grupo Código.

Nombre del botón Descripción


Abre el entorno de desarrollo. El método abreviado de teclado es
[Alt]+[F11].

Muestra la lista de macros. El método abreviado de teclado es


[Alt]+[F8].

Comienza la grabación de una macro.

Permite usar referencias relativas a la primera celda seleccionada.

Personaliza la configuración de seguridad de las macros.

8
b) Grupo Complementos.

Nombre del botón Descripción


Permite descargar
complementos de Office.

Permite seleccionar macros


grabadas como complementos.

Permite seleccionar
complementos COM (librerías
de funciones complementarias).

c) Grupo Controles.

Nombre del botón Descripción


Permite insertar controles (formularios o ActiveX) en
Excel.

Activa o desactiva el modo Diseño. En el modo Diseño se


pueden seleccionar y modificar los controles ActiveX,
pero no se pueden ejecutar.

Muestra las propiedades del objeto de Excel seleccionado


(hoja o control).
Permite acceder directamente al código asociado al control
seleccionado.
Ejecuta un cuadro de diálogo personalizado.

9
2.4.2 Las macros y la seguridad.

La configuración de seguridad de las macros permite controlar lo que ocurre al abrir un libro
que contiene macros. Las modificaciones de la configuración de seguridad de macros rigen solamente
en Excel y no afectan al resto de las aplicaciones de Microsoft Office.

a) Modificar la configuración de seguridad.

1. Hacer clic en el botón de la pestaña Desarrollador.


2. Dentro de Configuración de macros, seleccionar la opción deseada (ver en la siguiente
sección: Descripción de las diferentes opciones de seguridad).
3. Hacer clic en Aceptar para confirmar la elección.

Nota. Si se cambia la configuración de seguridad, las nuevas opciones se aplicarán a todos


los libros, excepto a los libros actualmente abiertos. Para aplicarlas a estos libros, debe cerrarlos y
abrirlos nuevamente.

b) Descripción de las diferentes opciones de seguridad.

1. Deshabilitar todas las macros sin notificación. Todas las macros y todas las advertencias
de seguridad serán deshabilitadas.
2. Deshabilitar todas las macros con notificación. Es la opción por defecto. Las macros
serán deshabilitadas, pero aparecerá una advertencia de seguridad en la barra de mensajes
(bajo la cinta de opciones) para los libros que contienen macros.
3. Deshabilitar todas las macros excepto las firmadas digitalmente. Si las macros de un
libro tienen firma digital de un origen aprobado, las macros se podrán ejecutar. Si el origen
no está autorizado, aparecerá una notificación: en este caso es posible habilitar las macros
firmadas o aprobar el origen. Las macros sin firma digital no se podrán habilitar.
4. Habilitar todas las macros. Si selecciona esta opción, todas las macros serán habilitadas.
Se recomienda no usar esta opción de forma permanente.
5. Confiar en el acceso al modelo de objetos de proyectos de VBA. Este parámetro es para
los desarrolladores y sirve para controlar o autorizar el acceso por programa al modelo de
objetos VBA (formularios, módulos y módulos de clase). La manipulación de los objetos
se hace a través de la propiedad VBComponents, que devuelve la colección de
componentes de un proyecto.

c) Habilitar las macros cuando aparece la advertencia de seguridad.

Si ha seleccionado la opción Deshabilitar todas las macros con notificación, aparecerá la


siguiente advertencia bajo la cinta de opciones cuando abra un libro que contiene macros:

10
Para habilitar las macros del libro, haga clic en el botón Habilitar contenido. A partir de
ahora, el libro pasará a ser un documento confiable y la advertencia de seguridad no aparecerá la
próxima vez que lo abra.

Nota. Un documento se considera confiable para una determinada ubicación: si cambia la


ubicación de un documento aprobado, volverá a aparecer la advertencia de seguridad la próxima vez
que lo abra.

Las macros se pueden habilitar solo para una sesión (es decir, hasta que se cierre el libro que
las contiene).

1. Al aparecer la advertencia de seguridad, hacer clic en la pestaña Archivo y seleccionar la


sección Información.
2. Dentro de Advertencia de seguridad, hacer clic en Habilitar contenido y luego en Opciones
avanzadas.

3. En el cuadro Opciones de seguridad de Microsoft Office, seleccionar la opción Habilitar


contenido para esta sesión.
4. Desaparecerá la advertencia de seguridad, aunque volverá a aparecer la próxima vez que
se abra el libro.

2.5 El entorno de VBE.

VBE (Visual Basic Editor) es el entorno en el que puede escribir, modificar y probar el
código VBA realizado. Este entorno se llama también IDE (Integrated Development Environment) o
editor de VBA.

1. Acceso al entorno VBE. Para acceder al entorno VBE desde Excel: hacer clic en el botón de
la pestaña Desarrollador o Programador, también se puede acceder con la combinación de
teclado [Alt]+[F11].
2. Cerrar el entorno VBE. Para cerrar el entorno VBE y volver a Excel: Hacer clic en el aspa
roja ubicada arriba a la derecha de la ventana principal del entorno VBE; o bien, hacer clic en
la opción Cerrar y volver a Microsoft Excel del menú Archivo.
3. Volver a Excel. Para volver a Excel sin cerrar el entorno VBE, use cualquiera de estas dos
posibilidades: Haga clic en el icono de la barra de herramientas Estándar; o bien,
teclear la combinación de teclado [Alt]+[F11].

11
2.6 Descripción del entorno VBE.

Nota. Todas las ventanas del entorno VBE se pueden visualizar desde el menú Ver.

a) La barra de herramientas Estándar.

De izquierda a derecha:

1 Ver Microsoft Excel. 10 Ejecutar Sub.


2 Insertar UserForm. 11 Interrumpir.
3 Guardar libro. 12 Restablecer.
4 Cortar. 13 Modo de diseño.
5 Copiar. 14 Explorador de proyectos.
6 Pegar. 15 Ventana de propiedades.
7 Buscar. 16 Examinador de objetos.
8 Deshacer. 17 Cuadro de herramientas.
9 Rehacer. 18 Ayuda de Microsoft Visual Basic.

12
b) El explorador de proyectos.

Cada libro abierto en Excel tiene asociado un proyecto. El explorador de proyectos permite
ver todos los proyectos y todos los módulos de cada proyecto según una
estructura en árbol. Los módulos se agrupan en cuatro categorías:

1. Módulos asociados a objetos de Excel (libro y hojas).


2. Módulos asociados a formularios.
3. Módulos estándares.
4. Módulos de clase.

Cada módulo puede contener muchos procedimientos.

c) La ventana Propiedades.

Muestra las propiedades relativas al libro, a las hojas de cálculo, a


las hojas gráficas y a los formularios.

d) La ventana Código.

En esta zona es donde se escribirá todo el código correspondiente a los procedimientos Sub
y Function; en otras palabras, es el lugar en donde se va a programar.

13
e) Ventana Inmediato.

Contiene todos los valores de las variables que hayan sido definidas previamente como
expresiones de inspección.

f) Ventana Locales.

Permite mostrar los valores de las variables, modificarlas, y ejecutar las instrucciones.

g) Ventana Inspecciones.

Contiene todos los valores de las variables del procedimiento en curso y lo puede mostrar
paso a paso.

Nota. Las ventanas Inmediato, Locales e Inspecciones se usan principalmente para la


depuración de aplicaciones (ver capítulo Depuración y administración de errores).

h) Instrucciones que se completan automáticamente.

Cuando se escribe el nombre de un objeto seguido de un punto, aparece automáticamente


una lista desplegable con los métodos, propiedades y constantes disponibles para ese objeto.

Nota. Si la lista no aparece, seleccione Opciones en el menú Herramientas y marque la


casilla Lista de miembros automática de la pestaña Editor.

i) El examinador de objetos.

Permite visualizar, para cada objeto, sus propiedades, métodos y constantes.

14
3 MÓDULOS.

3.1 Presentación.

El código VBA asociado a un libro está agrupado en un proyecto que contiene varias
carpetas:

1. La carpeta Microsoft Excel Objetos. Contiene un módulo de clase asociado al libro del
proyecto (llamado por defecto ThisWorkbook) y un módulo de clase por cada una de las
hojas de cálculo u hojas de gráfico del libro. En particular, en estos módulos de clase se
encuentran los procedimientos de eventos asociados al libro y a las hojas.
2. La carpeta Formularios. Contiene los formularios (UserForm) del proyecto y el código
VBA asociado.
3. La carpeta Módulos. Agrupa los diferentes módulos estándares (compuestos por uno o
más procedimientos) que pueden ser llamados desde cualquier procedimiento del
proyecto.
4. La carpeta Módulos de clase. Contiene los módulos de clase usados para la creación de
nuevas clases de objetos. Los módulos de clase se utilizan especialmente para la escritura
de los procedimientos de eventos asociados a los objetos Application y Chart.

Nota. La lista de todos los módulos aparece en forma jerárquica en el Explorador de


proyectos del entorno VBE. Si el explorador de proyectos no está visible, eligir la opción Explorador
de proyectos del menú Ver o pulsar el método abreviado [Ctrl]+ R.

15
3.2 Acceso a los módulos.

Para insertar un nuevo módulo en el entorno VBE, usar la opción Insertar y luego activar
Módulo, o hacer clic en el icono de la barra de herramientas y seleccionar la opción Módulo.

Si la ventana Módulo está maximizada, el nombre del módulo aparece sobre la barra de
título de Microsoft Visual Basic.

Para pasar de un módulo a otro, en la ventana Proyecto, hacer doble clic en el nombre del
módulo que se desea activar.

Para eliminar un módulo, en la ventana Proyecto, hacer clic derecho en el nombre del
módulo que se desea eliminar, elegir la opción Quitar Módulo e indicar si se desea exportar el
módulo o no (ver Importar y exportar código VBA).

Para dar nombre a un módulo, activar el módulo y cambiar la propiedad Nombre en la


ventana de Propiedades.

3.3 Importar y exportar código VBA.

Los módulos y formularios pueden exportarse a un archivo para luego importarlo a otro
proyecto de Excel.

Para exportar un archivo, hacer clic en el nombre del archivo en el explorador de proyectos,
luego seleccionar la opción Exportar archivo del menú Archivo (o del menú contextual) o pulsar la
combinación de teclas [Ctrl]+E.

Para importar un archivo, hacer clic en el nombre del archivo en el explorador de proyectos,
luego seleccionar la opción Importar archivo del menú Archivo (o del menú contextual) o pulsar la
combinación de teclas [Ctrl]+M.

La extensión del archivo creado depende del tipo de archivo exportado.

1. Los módulos de clase (módulos asociados al libro y a las hojas y módulos de clase
independientes) tienen la extensión .cls.
2. Los formularios tienen la extensión .frm.
3. Los módulos estándar tienen la extensión .bas.

16
4 PROCEDIMIENTOS.

4.1 Definiciones.

Los procedimientos son subprogramas que permiten descomponer una tarea de


programación compleja en un conjunto de tareas más breves y simples. Permiten organizar el código
dentro de módulos para obtener un código de mantenimiento más simple y fácilmente reutilizable.

En VBA Excel, se distinguen tres tipos de procedimientos.

1. Los procedimientos Sub (por subrutina) se llaman subprogramas o procedimientos Sub.


2. Los procedimientos Function se llaman funciones.
3. Los procedimientos Property se llaman procedimientos de propiedad.

En este material, únicamente interesarán los dos primeros, que son los más utilizados.

• Puntos comunes entre procedimientos Sub y Funciones:


o Ambos contienen instrucciones o métodos VBA.
o Ambos aceptan argumentos.
o Ambos pueden llamar desde otras funciones o procedimientos Sub.
• Características específicas de las funciones.
o Devuelven un valor.
o Se pueden utilizar desde Excel como cualquier función.

4.2 Acceso a los procedimientos.

• Para acceder a un procedimiento desde la ventana de código de un módulo, abrir la


segunda lista de la ventana del módulo, hacer clic en el nombre del procedimiento al
que se desea acceder o recorrer los procedimientos con [Ctrl]+[Flecha arriba] y
[Ctrl]+[Flecha abajo].
• Para seleccionar una palabra, hacer doble clic en la palabra.
• Para seleccionar una línea, sitar el puntero del ratón a la izquierda de la línea y hacer
clic cuando el puntero se convierta en una flecha.
• Para seleccionar un grupo de caracteres, usar la técnica de arrastrar y soltar o hacer
[Mayús]+clic.
• Para seleccionar un procedimiento completo, situar el puntero del ratón a la izquierda
de cualquier línea del procedimiento. Cuando el puntero se transforme en una flecha,
hacer doble clic.
• Para ejecutar un procedimiento, hacer clic en el procedimiento que se desea ejecutar
y pulsar [F5] o .
• Para eliminar un procedimiento, seleccionar todo el procedimiento y pulsar [Supr].

17
4.3 Procedimientos Sub.

Hay dos tipos de procedimientos Sub:

1. Los procedimientos Sub generales.


2. Los procedimientos Sub asociados a eventos.

Un procedimiento general es un procedimiento declarado en un módulo (generalmente un


módulo estándar). La llamada a este tipo de procedimiento se define explícitamente en el código.

Un procedimiento asociado a un evento es un procedimiento que se ejecuta


automáticamente ante ciertos eventos de un objeto. Su nombre se forma con el nombre del objeto,
seguido del guion bajo "_" y del nombre del evento (ej.: Workbook Open). La llamada a estos
procedimientos es implícita, es decir, el procedimiento se ejecuta automáticamente cuando se produce
el evento asociado.

Nota. Los procedimientos asociados a un evento no se estudiarán en este curso.

4.4 Procedimientos Function.

Los procedimientos Function, llamados comúnmente funciones, devuelven un valor


resultado de un cálculo. El valor se devuelve a través del nombre de la función.

El lenguaje Visual Basic incluye numerosas funciones integradas, tales como las usadas en
cálculos con fechas (day, week, year, format, etc.).

Además de estas funciones integradas, puede crear sus propias funciones personalizadas.

4.5 Declaración de procedimientos.

1. Sintaxis de un procedimiento Sub.


[Private | Public | Friend] [Static] Sub Nombre ([lista de argumentos])
<secuencia de instrucciones>
End Sub

2. Sintaxis de un procedimiento Function.


[Private | Public | Friend] [Static] Function Nombre ([lista de argumentos]) [As <Type>]
<secuencia de instrucciones>
End Function

18
Para crear un procedimiento Sub o Function, se deben respetar los siguientes pasos:

1. Determinar el alcance del procedimiento.


2. Declarar el procedimiento según su tipo con la palabra clave Sub o Function, seguida
del nombre del procedimiento.
3. Definir los argumentos que se deban pasar como parámetros al procedimiento e
indicarlos entre paréntesis después del nombre del procedimiento.
4. En el caso de una función, si es necesario, indicar el tipo del valor devuelto después de
la palabra clave As.
5. Escribir el código que permita efectuar la operación deseada. Si es necesario, usar Exit
Sub o Exit Function para salir del procedimiento. En el caso de una función, asignar el
resultado al nombre de la función.
6. Finalizar el procedimiento con End Sub o End Function.

4.6 Alcance de los procedimientos.

El alcance de un procedimiento determina la extensión de su uso.

• Un procedimiento Public se puede llamar desde todos los módulos de todos los
proyectos de Excel.
• Un procedimiento Private solamente se puede llamar desde un procedimiento dentro
del mismo módulo.
• La palabra clave Static indica que las variables locales del procedimiento se
mantienen entre una llamada y otra.
• Si no se indica Public, Private o Friend, los procedimientos son públicos por
defecto.

4.7 Argumentos de los procedimientos.

Los argumentos se usan para transferir a los procedimientos parámetros en forma de datos.
La cantidad de argumentos puede variar de 0 a varios.

Para declarar un argumento, basta con especificar su nombre. Sin embargo, la sintaxis
completa para declarar un argumento es la siguiente:

[Optional] [ByVal | Byref] [ParamArray] <variable> [As Type]

• La opción Optional indica que el argumento es opcional y puede omitirse. Los


argumentos opcionales se deben ubicar al final de la lista de argumentos y ser de tipo
Variant.

19
• La opción Byval indica que el argumento se pasa por valor. El procedimiento accede
a una copia de la variable; su valor inicial no se modifica por el procedimiento al que
se pasa.
• La opción Byref (opción por defecto) indica que el argumento se pasa por referencia.
En este caso, el procedimiento puede acceder a la variable propiamente dicha; de esta
manera, su valor real se puede modificar por el procedimiento al que se pasa.
• La palabra clave ParamArray se usa únicamente como último argumento de la lista
para indicar que se trata de una matriz opcional de elementos de tipo Variant. No se
puede usar con las palabras clave ByVal, ByRef u Optional.
• Variable especifica el nombre del argumento. Para las variables de matriz, no
especificar su dimensión.
• Type especifica el tipo de datos del argumento que se pasa al procedimiento (Byte,
Boolean, Integer, Long, etc.).

4.8 Ejemplos de procedimientos y funciones

Un ejemplo de procedimiento sería del siguiente modo:

Mientras que un ejemplo de función sería:

4.9 Variables.

Las variables permiten almacenar valores intermedios durante la ejecución del código VBA
para usarlos luego en cálculos, comparaciones, pruebas, etc.

Las variables se identifican por un nombre que permite hacer referencia al valor que
contienen y un tipo que determina la naturaleza de los datos que pueden almacenar.

20
4.9.1 Tipos de variables.

a) Numéricas.

Tipo Rango Tamaño


en bytes
Byte 0 a 255 1
Integer
-32 768 a 32 767 2
(entero)
Long (entero
-2 147 483 648 a 2 147 483 647 4
largo)
Single (real -3,402823E38 a 1,401298E-45 4
simple de (valores negativos)
coma flotante) 1,401298E-45 a 3,402823E38
(valores positivos)
Double (real -1,79769313486231E308 a 4,94065645841247E-324 8
doble de coma (valores negativos)
flotante) 4,94065645841247E-324 a 1,79769313486231E308
(valores positivos)
Currency -922 337 203 685 477,5808 a 922 337 203 685 477,5807 8
(monetario de
punto fijo)
Decimal +/-79 228 162 514 264 337 593 543950 335 sin separador 12
decimal;
+/-7,9228162514264337593543950335 con 28 cifras a la
derecha del separador decimal; el menor número distinto de cero
es +/0.0000000000000000000000000001

b) Cadenas de caracteres.

El tipo es String. Existen dos tipos de cadenas:

1. Las cadenas de longitud variable pueden contener aproximadamente dos mil millones de
caracteres.
2. Las cadenas de longitud fija pueden contener de 1 a aproximadamente 64 KB de
caracteres.

21
c) Boolean o lógica.

El tipo es Boolean (o booleano). La variable puede tomar los valores True (Verdadero) o
False (Falso), que es su valor por defecto. Ocupa dos bytes.

d) Fecha.

El tipo es Date. La variable puede tomar los valores de fecha y de hora del 1 de enero del
año 100 al 31 de diciembre de 9999. Ocupa ocho bytes.

e) Variant.

Las variables de tipo Variant pueden contener datos de todo tipo, además de los valores
especiales Empty, Error y Null.

Usar el tipo de dato Variant ofrece más flexibilidad en el tratamiento de datos. Por ejemplo,
si una variable de tipo Variant contiene cifras, se puede usar su valor real o su representación en forma
de cadena, según el contexto.

De todas formas, las variables de tipo Variant requieren 16 bytes de memoria para números
y 22 bytes más la longitud de la cadena para los caracteres; esto puede ser perjudicial en el caso de
procedimientos largos o en módulos complejos.

f) Objeto.

El tipo es Object. Para crear una variable que contenga un objeto, comience por declarar la
variable como tipo Objeto y luego asígnele un objeto.

4.9.2 Declaración de variables.

Para crear una variable, se debe declarar, es decir, darle un nombre. Luego puede usar ese
nombre para modificar el valor de la variable, usar ese valor, etc.

La declaración de variables en VBA puede ser implícita o explícita.

a) Declaraciones implícitas.

Se hacen directamente al asignar un valor a un nombre de variable. El tipo de datos será


entonces el tipo por defecto, o sea, Variant.

22
b) Declaraciones explícitas.

Requieren el uso de una instrucción de declaración (Dim, Public, Private, etc.). Si el tipo
de la variable no se indica, la variable resultará del tipo por defecto, o sea, Variant.

Se puede imponer la declaración implícita de variables usando la instrucción Option


Explicit en la sección de declaración de cada módulo. Para insertar esta instrucción automáticamente
en cada nuevo módulo, active la opción Requerir declaración de variables del menú Herramientas
- Opciones - pestaña Editor.

Nota. Para optimizar la velocidad de ejecución del código VBA, se recomienda declarar las
variables en forma explícita.

c) Sintaxis de las instrucciones de declaración.

<InstruccióndeDeclaración> NomVariable [As <TipodeDatos>]

Donde InstruccióndeDeclaración corresponde a una de las siguientes cuatro instrucciones:


Dim, Public, Private o Static.

1. Dim. Las variables declaradas con la instrucción Dim a nivel de módulo están
disponibles para todos los procedimientos del módulo. No son accesibles desde ningún
otro módulo. Las variables declaradas con la instrucción Dim a nivel de procedimiento
solamente están disponibles dentro del procedimiento.
2. Private. Solamente a nivel de módulo. Las variables Private solamente están
disponibles para el módulo en el que son declaradas.
3. Public. Solamente a nivel de módulo. Las variables declaradas con la instrucción
Public son accesibles desde el conjunto de módulos de todos los proyectos de Excel
abiertos. Si la instrucción Option Private Module se especifica en la sección de
declaración del módulo, las variables solamente son públicas dentro del proyecto que las
recibe.
4. Static. Solamente a nivel de procedimiento. Las variables declaradas con la instrucción
Static conservan su valor mientras dure la ejecución del código.

23
4.9.3 Declaración de los tipos de variables.

a) Declaraciones explícitas del tipo.

El tipo de la variable se especifica en la declaración, tras la palabra clave As.

Nota. Puede declarar más de una variable en una misma instrucción, pero atención, el tipo
de datos solo se tendrá en cuenta para la última variable, el tipo Variant se asignará a las otras.

b) Declaraciones implícitas del tipo.

El tipo de variable se declara usando un sufijo en el momento de su utilización o por la


instrucción DefType.

Empleo de un sufijo.

Debe agregar uno de los siguientes caracteres al nombre de la variable:

Sufijo Tipo de datos


% Integer
& Long
! Single
# Double
@ Currency
$ String

Ejemplo.

Declara la variable como tipo Cadena (String).

Dim Nombre$

Declara la variable como tipo Monetario (Currency).

Dim Deuda@

24
DefType.

Estas instrucciones se emplean en la zona de declaración del módulo, para definir los tipos
de datos por defecto de las variables cuyos nombres comienzan por los caracteres especificados. Lista
de instrucciones DefType:

Instrucción Tipo de datos


DefBool Boolean
DefDbl Double
DefInt Integer
DefDate Date
DefLng Long
DefStr String
DefCur Currency
DefObj Object
DefSng Single
DefVar Variant
DefByte Byte

Ejemplo.

Todas las variables cuyos nombres comienzan por una letra comprendida entre I y K y por
la letra N son variables de tipo entero (Integer).

DefInt I-K,N

Las variables que comienzan por una letra comprendida entre A y H serán de tipo cadena
(String).

DefStr A-H

La instrucción siguiente declara la variable Identificador como tipo Variant y las variables
Superficie y Latitud como tipo entero.

Dim Identificador, Superficie As Integer

Dim Latitud As Integer

25
5 ESTRUCTURAS DE DECISIÓN.

Es conveniente testear las condiciones específicas antes de ejecutar las instrucciones.

Las estructuras de decisión, llamadas también alternativas o bifurcaciones condicionales,


permiten, tras una evaluación, optar por uno u otro bloque de código.

Se distinguen dos instrucciones de bifurcación condicional:

• If …Then…Else
• Select…Case

5.1 Instrucción If.

Permite ejecutar ciertas instrucciones en función del resultado de una condición.

a) If...Then

If <condición> Then <instrucción> [:<instrucción>]

Si hay varias instrucciones, se separan por el signo de puntuación : (dos puntos). Esta sintaxis
se usa especialmente para pruebas cortas y simples.

Ejemplo.

26
b) If...Then...End If

If <condición> Then

<instrucción1>
<instrucción2>
...

End If

Ejemplo.

c) If...Then...Else...End If

If <condición> Then

<instrucciones>

Else

<instrucciones>

End If

Ejemplo.

27
d) If... Then...ElseIf...Else...End If

If <condición> Then

<instrucciones>

ElseIf <condición> Then

<instrucciones>

ElseIf <condición> Then

<instrucciones>

...

Else

<instrucciones>

End If

Ejemplo.

28
5.2 Instrucción Select Case.

a) Select Case.

Ejecuta una secuencia de instrucciones específicas en función del valor de una expresión.

Select Case <ExpresiónTest>

Case <ListaExpresiones>

<instrucciones>

Case <ListaExpresiones>

<instrucciones>
...

Case Else

<instrucciones>

End Select

<listaExpresiones> puede tomar una de las siguientes formas:

• valor (ejemplo: Case 10)


• lista de valores (ejemplo: Case 1, 5, 10)
• rango de valores (ejemplo: Case 1 To 5)
• expresión condicional (ejemplo: Case Is >= 5)

Ejemplo.

29
6 ESTRUCTURAS EN CICLO.

Las estructuras en ciclo (o de repetición) permiten repetir la ejecución de un conjunto de


instrucciones muchas veces, ya sea una cantidad n específica o hasta que una condición se cumpla o
se deje de cumplir.

Se distinguen varios tipos de estructuras en ciclo:

Do...Loop y While...Wend repiten las operaciones en función de una cierta condición,


mientras que For...Next repite las operaciones una cantidad de veces determinada por un contador.

For Each...Next permite recorrer los elementos de una colección.

6.1 Instrucción Do...Loop.

Ejecuta un bloque de instrucciones un número indeterminado de veces.

6.1.1 Sintaxis 1.

Las instrucciones se ejecutan, mientras que la condición devuelve el valor True.

Do While <Condición>

<Instrucciones>

Loop

Ejemplo.

30
6.1.2 Sintaxis 2.

Las instrucciones se ejecutan una primera vez sin condición y, luego, mientras la condición
devuelva True.

Do

<Instrucciones>

Loop While <Condición>

Ejemplo.

6.1.3 Sintaxis 3.

Las instrucciones se ejecutan hasta que la condición toma el valor True (mientras que la
condición devuelva el valor False).

Do Until <Condición>

<Instrucciones>

Loop

Ejemplo.

31
6.1.4 Sintaxis 4.

Las instrucciones se ejecutan una primera vez sin condición y luego hasta que la condición
devuelva el valor True.

Do

<Instrucciones>

Loop Until <Condición>

Ejemplo.

6.2 Instrucción While...Wend

Ejecuta una serie de instrucciones en un ciclo mientras se cumple la condición especificada.

While <condición>

<instrucciones>

Wend

Ejemplo.

32
6.3 Instrucción For...Next

Ejecuta un bloque de instrucciones según el valor de un contador.

For <contador>=<inicio> To <fin> [Step <incremento>]

<instrucciones>

Next

Ejemplo.

6.4 Instrucción For Each...Next

Ejecuta un bloque de instrucciones para cada elemento de una colección de objetos o de una
matriz.

For Each <elemento> In <Grupo>

<Instrucciones>

Next <elemento>

Ejemplo.

33
6.5 Salir de las estructuras de control.

La instrucción Exit For permite salir directamente de un ciclo For o For Each, mientras
que Exit Do sale directamente de un ciclo Do.

6.6 Reglas de escritura del código.

1. Comentarios. Los comentarios permiten documentar el código VBA para hacerlo más
legible.

REM comentario

’ comentario

Al validar la línea de comentario, esta se muestra, por defecto, en verde.

2. Carácter de continuación. Una instrucción VBA puede escribirse en muchas líneas


usando un guión bajo "_" precedido de un espacio.

3. Sangrías. Las sangrías (o tabulaciones) permiten una mayor legibilidad del código. Es
especialmente importante usarlas en las estructuras de control (sobre todo si hay varias
instrucciones If anidadas) y las estructuras de decisión.
• Para generar las sangrías, use la tecla [Tab].
• Para retroceder a la tabulación precedente, use las teclas [Mayús][Tab].
• Para modificar el tamaño de la tabulación (cuatro espacios por defecto), seleccione
Opciones en el menú Herramientas, haga clic en la pestaña Editor y modifique el
valor Ancho de tabulación.

34
Ejemplo.

4. Nombres de los procedimientos, variables y constantes. Los nombres de los


procedimientos, constantes, variables y argumentos deben respetar las siguientes
reglas:
• El primer carácter debe ser una letra.
• No se diferencian minúsculas de mayúsculas (se aceptan letras acentuadas), aunque
se respetan unas y otras.
• No se usan nombres reservados en Visual Basic o palabras clave con restricciones.
• No se usan el punto, el espacio ni los signos !, $, # y @.
• Un nombre no puede tener más de 255 caracteres.
• Para los procedimientos Function, no se usa un nombre igual a una referencia de
celda.
• No se indican varias veces los mismos nombres de variables y de constantes en un
mismo nivel de alcance.

35
7 OPERADORES.
Los operadores permiten realizar operaciones aritméticas con variables o constantes,
comparar variables entre ellas, evaluar varias condiciones, etc.

Se distinguen varios tipos de operadores:

• Operadores aritméticos.
• Operadores de comparación.
• Operadores lógicos.
• Operador de concatenación.

Nota. El operador de asignación es el signo =. El valor de la expresión situada a la derecha


del signo igual se asigna a la variable situada a la izquierda del signo (ejemplo: IntA = 12, IntA = Intb
* 12).

7.1 Operadores aritméticos.

Permiten efectuar cálculos aritméticos con variables o constantes.

Operador Cálculo realizado


+ Adición
- Sustracción
/ División con resultado de un número con coma flotante
Mod Resto de la división entre dos números
\ División con resultado entero
* Multiplicación
ˆ Potenciación
7.2 Operadores de comparación.

Comparan dos valores o dos cadenas de caracteres.

Operador Cálculo realizado


< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
= Igual a
<> Distinto de

36
La instrucción Option Compare utilizada a nivel de módulo permite declarar el método de
comparación por defecto que conviene usar en la comparación de cadenas.

Puede tomar uno de estos tres valores posibles:

• La opción Compare Binary (opción por defecto) realiza la comparación de cadenas


basada en el orden derivado de la representación binaria interna de los caracteres: A
< B < E < Z < a < b < e < z < Á < Ê < Ø < á < ê...
• La opción Compare Text realiza la comparación de cadenas sin distinguir
mayúsculas de minúsculas: (A=a) < (Á=á) < (B=b) < (E=e) < (Ê=ê) < (Z=z) <
(Ø=ø)...
• La opción Compare Database realiza la comparación de cadenas basada en el orden
determinado por el identificador de parámetros regionales de la base de datos en la
que se realiza la comparación de cadenas.

7.3 Operadores lógicos.

Permiten evaluar simultáneamente dos (o más) valores booleanos o expresiones que


devuelven este tipo de valor.

Generalmente se usan con la instrucción If.

Operador Cálculo realizado


AND Si todas las expresiones tienen el valor True, el resultado es True. Si una de las
expresiones tiene el valor False, el resultado es False.
OR Si por lo menos una de las expresiones tiene el valor True, el resultado es True (o
inclusivo).
Si una y solo una de las expresiones tiene el valor True, el resultado es True (o
XOR
exclusivo).
NOT Devuelve el contrario de la expresión.

Eqv Devuelve True si las dos expresiones son idénticas.

Ejemplo.

(A>=1) AND (A=<9) devuelve True si A está comprendido entre 1 y 9,


NOT (A >= 10) devuelve True si A es estrictamente menor que 10,
(A>0) OR (B>0) OR (C>0) devuelve True si al menos uno de los valores es positivo.

37
7.4 Operador de concatenación.

El operador de concatenación es el signo &. Engancha cadenas de caracteres, valores y


expresiones.

Ejemplo.

Concatenación del apellido y el nombre.


SApeNom = sApellido & " " & sNombre

7.5 Prioridad de los operadores.

Cuando hay varios operadores en una misma expresión, cada uno de ellos se evalúa en un
orden predeterminado, llamado prioridad de los operadores.

Los operadores se evalúan en el siguiente orden: operadores aritméticos, operadores de


comparación, operadores lógicos.

Los operadores de comparación tienen la misma prioridad; es decir, son evaluados por orden
de aparición, de izquierda a derecha.

Los operadores aritméticos y lógicos se evalúan en el siguiente orden de prioridad:

Aritmético Lógico
ˆ Not
*, /, \ And
Mod Or
+, - Xor
Eqv

El uso de paréntesis permite modificar la prioridad para que un elemento de una expresión
sea evaluado antes que los otros. Las operaciones encerradas entre paréntesis siempre se evalúan antes
que las otras.

38
8 FUNCIONES MATEMÁTICAS.
VBA cuenta con algunas de las funciones más utilizadas en la ciencia y no requieren de una
llamada especial. Las funciones matemáticas se llaman funciones intrínsecas y para activarlas,
requieren escribir simplemente una abreviación como se indica a continuación.

1. Abs. Devuelve el valor absoluto de un número.


2. Atn. Devuelve el arcotangente de un número.
3. Cos. Devuelve el coseno de un ángulo.
4. Exp. Devuelve e (la base de los logaritmos neperianos), elevado a una potencia dada.
5. Fix. Devuelve la parte entera de un número.
6. Int. Devuelve la parte entera de un número. La diferencia con la función Fix consiste en
que, si el valor del argumento "número" es negativo, Int devuelve el primer entero
negativo menor o igual al argumento, mientras que Fix devuelve el primer entero
negativo mayor o igual al argumento.
7. Log. Devuelve el logaritmo neperiano de un número.
8. Rnd. Devuelve un número aleatorio.
9. Round. Devuelve un número redondeado a una cantidad especificada de posiciones
decimales.
10. Sgn. Devuelve un número entero que indica el signo del argumento.
11. Sin. Devuelve el seno de un ángulo.
12. Sqr. Devuelve la raíz cuadrada de un número.
13. Tan. Devuelve la tangente de un ángulo.

Otras funciones, si bien no son intrínsecas, se pueden obtener a partir de funciones


intrínsecas.

Algunos ejemplos:

Secante = 1 / Cos(x).

Cosecante = 1 / Sin(x).

Cotangente = 1 / Tan(x).

Nota. Los ángulos en las funciones trigonométricas son considerados en radianes.

39

También podría gustarte