Actualizado el 7 de Abril del 2021 (Publicado el 7 de Julio del 2019)
3.307 visualizaciones desde el 7 de Julio del 2019
4,8 MB
52 paginas
Creado hace 9a (01/12/2014)
TEMA 6
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL
UTILIZANDO VISUAL BASIC FOR APPLICATIONS
1º Grado en Ingeniería Química | Laura Briones Gil
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
TEMA 6
Contenido
1.
INTRODUCCIÓN A LAS MACROS DE EXCEL .......................................................................... 2
1.1
1.2
LA GRABADORA DE MACROS ........................................................................................ 3
SEGURIDAD DE MACROS ............................................................................................... 7
2. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN EN VBA ............................................................ 8
2.1
2.2
2.3
PROGRAMACIÓN ORIENTADA A OBJETOS .................................................................... 8
EL EDITOR DE VISUAL BASIC ........................................................................................ 12
TIPOS DE ERRORES EN VBA ......................................................................................... 15
3. PROGRAMACIÓN EN VBA ................................................................................................... 17
3.1
3.2
3.3
3.4
VARIABLES ................................................................................................................... 17
ENTRADA DE DATOS Y EMISIÓN DE RESULTADOS ...................................................... 18
FUNCIONES .................................................................................................................. 21
ESTRUCTURAS DE CONTROL DE FLUJO ....................................................................... 25
4.
FORMULARIOS Y CONTROLES ............................................................................................ 38
ANEXO: ........................................................................................................................................ 50
1
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
1. INTRODUCCIÓN A LAS MACROS DE EXCEL
Una macro es un conjunto de comandos que se almacenan en Excel de manera que están
siempre disponibles cuando se necesita ejecutarlas. Las macros se utilizan principalmente para
evitar tener que repetir los pasos de aquellas tareas que se realizan una y otra vez.
Las macros se escriben en un lenguaje de programación que se denomina Visual Basic for
Applications (VBA). Aunque no es necesario conocer a fondo este lenguaje para crear una
macro, ya que Excel contiene una herramienta especial de programación, manejar este
lenguaje permite acceder a todas las funcionalidades de Excel y ampliar las posibilidades del
programa.
Como para cualquier otro lenguaje de programación, hay que aprender a utilizar los comandos
que le son propios, de manera que la aplicación pueda ejecutar las tareas programadas.
Las macros se pueden crear de dos maneras, utilizando un Editor de Visual Basic o utilizando la
Grabadora de Macros de Excel. Ambas opciones se ejecutan desde la Ficha Programador de la
cinta de opciones. Al igual que ocurría con el Solver, la Ficha Programador no aparece por
defecto al abrir la aplicación, sino que es necesario activarla. Para ello, desde la Ficha Archivo,
hay que seleccionar Opciones Opciones de Excel Personalizar la cinta de opciones
seleccionar la opción Programador:
2
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
La Ficha Programador tiene el siguiente aspecto:
• El Grupo Código contiene los comandos necesarios para inicial el Editor de Visual Basic
donde se puede escribir directamente código VBA. También permite ver la lista de macros
disponibles para poder ejecutarlas o eliminarlas. También contiene el comando Grabar
Macro, que permite crear una nueva macro sin necesidad de conocer programación en
VBA.
• El Grupo Complementos permite habilitar y administrar complementos como el Solver.
• El Grupo Controles permite agregar controles especiales a una hoja de Excel, tales como
botones, casillas de verificación, botones de opciones, etc.
• El Grupo XML permite trabajar con ficheros XML.
• El Grupo Modificar contiene únicamente el comando Panel de Documentos.
1.1 LA GRABADORA DE MACROS
La Grabadora de Macros es la forma más sencilla de crear una macro. Consiste básicamente en
grabar todos los pasos que el usuario ejecuta para resolver un problema y seguir ese mismo
esquema para resolver problemas similares en el futuro. Por tanto, al utilizar la grabadora es
conveniente planificar previamente los pasos que se van a seguir y no realizar acciones
innecesarias mientras se realiza la grabación.
La grabadora se activa con el comando Grabar macro. Al pulsar el botón se abre un cuadro de
diálogo en el que hay que introducir el nombre de la macro y la ubicación donde se desea
guardar1. Una vez creada una macro, el comando se transforma en Detener grabación.
1 Si la macro se guarda en un libro nuevo puede ser ejecutada desde cualquier libro creado durante la
sesión actual de Excel. Si se guarda en un libro de macros personal, la macro se podrá utilizar en
cualquier momento sin importar el libro de Excel que se esté utilizando.
3
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
Ejemplo 1: Grabar una macro sencilla.
Una macro puede ser cualquier conjunto de comandos, desde cambiarle el color a una celda,
hasta introducir una función y resolverla. En este ejemplo, se ha grabado un ejercicio de tipo
Buscar Objetivo igual que uno de los que se hizo en el tema 2. Se ha cambiado el formato de la
celda del título para combinar y centrar un conjunto de celdas, cambiar la fuente a negrita en
blanco y el fondo a rojo, se ha escrito el título y los rótulos de las casillas, se ha recuadrado el
conjunto de casillas y se ha utilizado el comando Buscar objetivo para resolver el problema. La
macro se ha guardado con el nombre Y_Si en el libro personal de macros.
El resultado al ejecutarla con el comando Macros es el esperado:
Para ver el código exacto que contiene esta macro, en lugar de ejecutarla se puede abrir para
modificar. Esto abre el Editor de Visual Basic:
Podemos ver en detalle cada uno de los pasos que incluye el programa:
4
TEMA 6
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
Sub Y_Si() Se le pide crear una macro con el nombre Y_Si
' Y_Si Macro
' Resuelve un problema de tipo Y si Esta es la descripción que se ha incluido al crearla
Range("A1:D1").Select Selecciona las celdas A1 a D1
With Selection Con esas celdas
.HorizontalAlignment = xlCenter centra el contenido tanto horizontalmente
.VerticalAlignment = xlBottom como verticalmente
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
Esto son más
opciones de alineado,
como añadir una
sangría o ajustar el
texto a la celda, que
por defecto entiende
que no hay que hacer
End With termina con las opciones de alineado
Selection.Merge combina las celdas seleccionadas
Range("A1:D1").Select selecciona la nueva celda combinada como celda objetivo
ActiveCell.FormulaR1C1 = "Hallar el valor de x que hace y = x2+x+2 = 10" y escribe este
texto
Selection.Font.Bold = True Sobre la celda seleccionada hace que la fuente sea negrita
With Selection.Font sobre esa celda
.ThemeColor = xlThemeColorDark1 cambia el color
.TintAndShade = 0 para que sea blanco
End With termina con las opciones de la fuente
With Selection.Interior para la celda seleccionada cambia el color del fondo
.Pattern = xlSolid para que toda la celda esté rellena
.PatternColorIndex = xlAutomatic de uno de los colores automáticos
.ThemeColor = xlThemeColorAccent2 en concreto el rojo oscuro
.TintAndShade = 0 sin sombras ni bordes de celda
.PatternTintAndShade = 0 ni ningún patrón de relleno
End With termina con el relleno de la celda
Range("A3").Select para la celda A3
ActiveCell.FormulaR1C1 = "Valor objetivo (y)" escribe este texto
Range("A5").Select para la celda A5
ActiveCell.FormulaR1C1 = "Variable independiente (x)" escribe este texto
Columns("A:A").EntireColumn.AutoFit amplía el ancho de la columna A hasta ajustar el
5
PROGRAMACIÓN DE MACROS DE EXCEL UTILIZANDO VISUAL BASIC FOR
APPLICATIONS
TEMA 6
texto
Range("C3").Select a la celda C3
ActiveCell.FormulaR1C1 = "=R[2]C^2+R[2]C+2" le da el valor de la siguiente función
Range("A1:D5").Select sobre este rango de celdas
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(
Comentarios de: TEMA 6 Programación de Macros de Excel utilizando VBA (1)