Megaguia Macros Vba
Megaguia Macros Vba
Puedes utilizar una macro para acelerar las tareas frecuentes con Excel y
ampliar su utilidad, creando, por ejemplo, nuevas funciones para resolver
cálculos que de otra forma sería imposible realizar.
Existen tres formas de crear una macro:
PROGRAMACIÓN ORIENTADA A
OBJETOS
Más arriba he hablado de este concepto pero, ¿sabes qué significa?
Como te digo, los objetos del modelo de Excel están organizados por
jerarquías, que significa que unos objetos pueden contener a otros
objetos.
Por ejemplo, para hacer referencia al libro “Ventas anuales.xlsx” habría que
hacerlo de la siguiente forma:
Application.Workbooks(“Ventas anuales.xlsx”). _
Worksheets(“Totales”).Range(“B2”).Select
Workbooks(“Ventas anuales.xlsx”). _
Worksheets(“Totales”).Range(“B2”).Select
Worksheets(“Totales”).Range(“B2”).Select
Range(“B2”).Select
Como he dicho antes, todos los objetos del mismo tipo forman una
colección. Las colecciones permiten trabajar con un grupo de objetos como
si de un solo objeto se tratara. Normalmente, el nombre de una colección
es el objeto en plural de los objetos que contiene.
Coleccion!Objeto
Coleccion![Objeto]
Coleccion(“Objeto”)
Coleccion(var)
Coleccion(index)
Var es una variable del tipo String que contiene el nombre del
objeto. Index es el número de la posición que ocupa el objeto dentro de la
colección.
Por ejemplo, propiedades del objeto Range pueden ser Name (nombre),
Value (valor) y Column (columna), entre muchos otros.
Range(“B2”).Font.Size = 25
Objeto.Método
Range(“A2”).Select
Imagina que cada vez que abras un libro, quieres que aparezca un mensaje
de bienvenida. Para ello se debe trabajar dentro del evento Open del objeto
Workbook de la siguiente manera:
Para mostrar la ficha te recomiendo que hagas clic con el botón derecho en
cualquier parte de la cinta de opciones y selecciones Personalizar la cinta
de opciones. A continuación activa la casilla de verificación
correspondiente en la parte de la derecha del cuadro de diálogo.
Microsoft tomó medidas hace ya varios años para prevenir este uso
indebido de Excel, creando un formato de archivo especial para guardar
los libros que contienen macros. Además, incluyó varios niveles de
seguridad.
La extensión .xlsm fue la elegida para designar a los archivos con macros.
En las versiones anteriores a Excel 2007 era imperceptible a menos que
tuvieras habilitados los niveles de seguridad que respectan a las macros.
Ahora, con sólo comprobar la extensión del libro podrás determinar si
contiene alguna macro y así decidir si quieres abrirlo o no, en función de la
confianza que te genere.
Hace unos años se pusieron de moda los virus dentro de macros. Estos
virus se aprovechaban de archivos aparentemente inofensivos para hacer
varios tipos de ataque.
Para poder trabajar con archivos que contienen macros, debes configurar
las restricciones de seguridad de Excel desde el Centro de Confianza.
Para ver qué configuración tiene Excel en el momento, pulsa en el
botón Seguridad de macros que se encuentra en el grupo Código de la
ficha Desarrollador.
EL EDITOR DE VBA
El editor de Visual Basic for Applications es el lugar donde se desarrollan,
prueban y modifican las macros. Se ejecuta en una ventana diferente a la
de Excel y se accede a ella de estas tres formas:
La ventana del editor muestra todo lo necesario para comenzar a crear una
macro.
Artículos relacionados:
• Qué puedes modificar en la apariencia del editor de VBA en Excel
LOS PROCEDIMIENTOS EN VBA
Como te mostré antes, la ventana del Explorador de Proyectos muestra
todos los objetos que pueden contener código VBA (los
objetos Hojas, ThisWorkbook, Módulos, Userforms). Dentro de estos
objetos se ubican los procedimientos. En Excel existen tres tipos de
procedimiento:
• Sub
• Function
• Property
El procedimiento Sub
Se puede decir que un procedimiento Sub es un conjunto de instrucciones
que realizan una serie de acciones específicas.
Todos los procedimientos Sub comienzan con la palabra Sub seguida del
nombre que le quieras dar, y finalizan con la instrucción End Sub.
La instrucción Sub también puede ir precedida de otras palabras que
determinan el ámbito, y puede contener una lista de argumentos para que
el procedimiento pueda usarlos de manera interna.
Artículos relacionados
• 5 formas de ejecutar procedimientos Sub
• Cómo crear procedimientos Sub
El procedimiento Function
Ya sabes que Excel cuenta con muchas funciones de hoja predefinidas
como SUMA, BUSCARV o SUMAR.SI. Pero a veces es necesario realizar
cálculos más complejos para los que no existe una función.
El procedimiento Property
Este tipo de procedimiento se utiliza para crear y personalizar las
propiedades de los objetos de Excel. Se declaran automáticamente como
públicos aunque es posible hacerlo como privados.
VARIABLES, CONSTANTES Y OTROS
DATOS INTERESANTES
Variables
En muchas ocasiones necesitarás guardar datos de forma temporal para
utilizarlos más adelante en otros cálculos. Por ejemplo, puedes almacenar
los valores de venta de un producto cada mes para luego utilizarlo para
hallar el total anual.
X = 13
Mes3 = “Marzo”
Total_anual = 32000
Artículos relacionados
• Tipos de variables en VBA
Constantes
Las constantes, como lo indica su nombre, son valores que nunca cambian,
que mantienen su valor durante toda la ejecución de la macro.
Declarar una constante se hace de la misma forma que lo harías con una
variable.
Operadores
Una operación simple puede ser 4+5=9. En esta expresión, el 4 y el 5 son los
operandos y el signo + el operador. Este es el ejemplo más simple que se
me ocurre. Se utilizan para modificar un valor o para crear uno nuevo.
VBA cuenta con varios tipos de operadores:
La función MsgBox
Es la función más utilizada en VBA. Se emplea para obtener una respuesta
simple como Sí o No del usuario y para mostrar mensajes breves como
errores y algún dato relevante para la ejecución de la macro.
Algunas veces puede que necesites utilizar estos tipos de datos de forma
diferente al tipo de dato predeterminado. Para esto se utilizan las funciones
de conversión de tipo.
Ten en cuenta que no todos los tipos de datos pueden convertirse a
cualquier otro formato. Cuando utilizas una función de conversión de tipo,
ésta devuelve el valor del dato convertido pero no cambia el valor
almacenado.
DESCARGA GRATIS MI
EBOOK
¿Cuánto tiempo te gustaría ahorrar en tu trabajo
diario? Estos son los 6 pasos que te acercarán a la
automatización de tus libros de Excel. Haz clic aquí.
ESTRUCTURAS DE PROGRAMACIÓN
Las estructuras de programación te permiten controlar el flujo de la
ejecución de la macro, desviándolo según acciones del usuario o
repitiendo ciertas instrucciones. Estas estructuras existen en todos los
lenguajes de programación y funcionan casi de la misma forma.
• If – Then
• If – Then – Else
• IIf
• Select Case
La estructura If – Then
If condición_1 Then
Instrucción_1
Instrucción_2
……
ElseIf condición_2 Then
Instrucción_3
Instrucción_4
……
ElseIf condición_3 Then
Instrucción_5
Instrucción_6
……
……
Else
Instrucción_7
Instrucción_8
……
End If
Select Case
Cuando tienes muchas condiciones para evaluar, puede resultar
complicado utilizar instrucciones If anidadas. Por eso VBA te ofrece la
estructura Select Case como alternativa.
Con esta estructura se evalúa una condición que puede dar como resultado
un número indeterminado de valores, y realizar acciones según este
resultado. Observa la sintaxis:
With objeto
[instrucciones]
End With
Sub ejemplo_with()
With Range(“1:1”).Font
.Bold = True
.Name = “Comic Sans MS”
.Size = 14
.ColorIndex = 4
End With
End Sub
• For – Next
• For Each – Next
• Do – Loop
For – Next
Se utiliza cuando es necesario repetir un bloque de código un número
determinado de veces que ya se sabe de antemano. Esta estructura utiliza
una variable llamada contador que incrementa o reduce su valor en cada
repetición del bucle. Su sintaxis es la siguiente:
Sub ejemplo_For_Next_Exit()
Dim contrasenia As String
Dim i As Integer
For i = 1 To 5
contrasenia = InputBox(“Ingrese contraseña”)
If contrasenia = “123” Then
mensaje = 1
Exit For
Else
mensaje = 2
End If
Next
If mensaje = 1 Then
MsgBox “Bienvenido al sistema”
Else
MsgBox “Ha olvidado su contraseña, “ & _
“comuníquese con el administrador”, _
vbOKOnly + vbCritical
End If
End Sub
Al igual que con los bucles For, también es posible salir antes de tiempo de
un bucle Do – Loop. Para ello está la instrucción Exit Do.
El objeto Application
Es el objeto con mayor rango en el modelo de objetos. Hace referencia a
la aplicación (en este caso, Excel).
Métodos de Application
Como mencioné más arriba, los métodos son el conjunto de acciones
que puede realizar un objeto. Te muestro alguno de ellos:
Workbooks y Workbook
El objeto Workbooks se encuentra por debajo de Application. Workbook
forma parte de la colección Workbooks. Lo devuelven las siguientes
propiedades del objeto Application:
• Application.Workbooks: Devuelve la colección Workbooks.
• Application.ActiveWorkbook: Devuelve el libro activo.
• Application.Thisworkbook: Devuelve el libro que contiene la macro
ejecutada.
El objeto Range
El objeto Range identifica a una celda o conjunto de ellas, ya sean contiguas
o no.
Propiedades de Range
Este objeto es de los que más propiedades tiene. Te muestro las más
importantes:
• ActiveCell: Devuelve la celda activa de la ventana activa.
• Range: Devuelve un objeto Range que representa un rango de
celdas.
• Cells: Otra forma de hacer referencia a las celdas.
• Rows: Devuelve un objeto Range que representa una fila de la hoja.
• Columns: Devuelve un objeto Range que representa una columna
de la hoja.
• Offset: Devuelve un objeto Range desplazado de una referencia un
número de filas y de columnas determinado.
• Value: Establece el valor que tiene una celda o rango de ellas.
• FormulaLocal: Permite introducir fórmulas y funciones en tu propio
idioma, como si lo hicieses directamente en la hoja.
• End: Desplaza la celda activa a la última celda de la fila o la columna.
• Font: Establece el tipo de fuente.
• Interior: Permite modificar el fondo de la celda.
• Border: Permite modificar los bordes de la celda.
Métodos de Range
Estos son algunos de los métodos de Range más utilizados:
LOS FORMULARIOS
Gracias a los formularios es posible manejar datos en Excel de forma más
intuitiva y eficiente, ya que, además de acelerar el proceso, consigue evitar
los temidos errores de introducción de datos.
Los formularios están llenos de controles (botones, cuadros de texto,
etiquetas, etc.) programables para responder a determinadas acciones
(clics, selección de datos, etc.).
RESUMIENDO…
Si has conseguido seguir la guía completa, ¡enhorabuena! En estas 7.000
palabras te he resumido los conocimientos esenciales para comenzar a
crear tus propias macros de forma sencilla y eficiente.