Visual Basic for
Applications
María Teresa González Valencia
Luis Alejandro Villacorta Devoto
Introducción
• VBA es un lenguaje de programación desarrollado
por Microsoft. Permite automatizar tareas en Excel.
• Macro: Programa elaborado en VBA (subrutina o
función). Una macro puede crearse mediante
escritura o grabación.
• Objeto: El propio Excel, un libro (workbook), hoja
(worksheet), rango. Un objeto puede contener
otros objetos.
Introducción
• Subrutina: Es un conjunto de tareas que se ejecutan
desde el editor de VBA o desde Excel mediante un
botón.
• Función: Conjunto de tareas que dan un resultado
único en una celda de Excel.
Introducción
• Jerarquía de los objetos:
• Al referirse a un objeto, lo formal es poder especificar su
orden completo.
Iniciando VBA
• Abrir un libro Excel.
Iniciando VBA
• Archivo -> Opciones -> Centro de confianza
Iniciando VBA
• Configuración del Centro de confianza
• 1. Habilitar todas las macros. 2. Confiar en el
acceso al modelo de objetos. Aceptar y reiniciar
Excel.
Iniciando VBA
• Abrir un libro Excel. Alt+F11
Iniciando VBA
• Menú Insertar -> Módulo
Iniciando VBA
• Iniciar una subrutina:
Preliminares
• Rango: Es un objeto que representa a un conjunto
de celdas (o a una celda única) de Excel.
• Notación completa: Range(“rango”)
• Ejemplo:
Range(“A1”)
Range(“A1:C4”)
• Notación breve: [rango]
• Ejemplo: (sólo una celda)
[A1]
Preliminares
• Notación completa considerando jerarquías:
[Link](“Libro1”).Worksheets(“Hoja1”).
Range(“A1”)
• Operadores matemáticos: Suma (+), resta (-),
multiplicación (*), división (/) y exponenciación (^)
• Ejemplo: (definiendo un rango)
Range(“B4”) = 2 - 4 * 2 ^ 5
Range(“D5”) = “Curso de info”
Preliminares
• ¿En cuál hoja estamos trabajando?
• Seleccionar una hoja:
o Worksheets(“Hoja1”).Select
• Escribir en otra hoja:
o Worksheets(“Hoja2”).Range(“A5”) =
Preliminares
• ¿En qué libro estamos trabajando?
• Selección de un libro:
o Workbooks(“Libro1”).Activate
• Escribir en otro libro:
o Workbooks(“Libro2”).Worksheets(“Hoja3”).Range(“B4”) =
Preliminares
• Variable: Indica un espacio en la memoria
asignado a un valor determinado. Su naturaleza es
temporal. Puede o no definirse al inicio del
programa (comando Dim)
• Ejemplo:
Dim variable1 As Integer
variable1 = 45
b = Range(“H12”)
(el lado izquierdo es el que se define)
Preliminares
• Tipos de variable: Clasificación según
requerimiento.
Preliminares
• Tipos de variable: (continuación)
Guardado de archivos
Ejercicios
• 1. Crear una subrutina que permita mostrar sus nombres
y apellidos en una o más celdas de Excel (usando la
Hoja1). Presentar 3 notas en 3 celdas de Excel, y en una
celda aparte el promedio simple como resultado.
• 2. En el mismo archivo de Excel y en la misma subrutina,
use VBA para escribir otras 3 notas en la Hoja2, y luego
escribir el promedio de todas las notas (de la Hoja1 y de
la Hoja2) en una celda de la Hoja3. Finalmente, crear
una variable que sea igual a este promedio último, y
cuyo valor figure en una celda de la Hoja1. Al costado
de dicha celda debe estar escrito “Promedio final”.