Una "macro" es una secuencia de instrucciones que automatiza alguna tarea.
Una macro puede ser ejecutada repetidas veces.
Las macros pueden ser creadas de dos formas:
- Automáticamente, "grabando" una secuencia de operaciones.
- Manualmente, escribiendo una a una las instrucciones.
Para guardar las plantillas que contienen macros es necesario "habilitar las macros":
Vista del editor VBA
Trabajaremos en la ventana del editor de VBA que se abrirá al hacer clic en Programador- Visual Basic, o ALT- F11.
También podemos encontrarla en Herramientas- Macro- Editor de Visual Basic.
Para poder comenzar a programar hacer clic en el primer icono que aparece en la ventana proyecto.
Tipos de macros en VBA
- SUBRUTINAS ("VBA sub procedures"): Comandos que realizan tareas.
- FUNCIONES ("VBA functions"): Retornan un valor.
- Sub procedures
Se identifican por un nombre (seguido de paréntesis).
Ejemplo1:
Sub HolaMundo()
MsgBox "¡Hola Mundo!"
End Sub
Ejercicio1: Crea un procedimiento en el que aparezcan tu nombre y tu curso.
Ejercicio2: Crea un procedimiento con una frase ilustre.
Ejercicio3: Inventa un procedimiento.
Ejercicio2: Crea un procedimiento con una frase ilustre.
Ejercicio3: Inventa un procedimiento.
- Instrucciones elementales
InputBox( texto a desplegar)
Ejemplo2:
Sub Saluda()
nombre = InputBox ("Dime tu nombre")
MsgBox "Hola " & nombre
End Sub
Sub Saluda()
nombre = InputBox ("Dime tu nombre")
MsgBox "Hola " & nombre
End Sub
Para despliegue de resultados mediante un cuadro de diálogo:
MsgBox texto a desplegar
- Variables
El nombre de una variable puede contener casi cualquier letra o símbolo, pero debe comenzar siempre por una letra.
No se deben usar espacios ni comas como parte de un nombre de variable, como tampoco los símbolos:$,#, %, & o !, ni operadores aritméticos.
Ejemplos: edad, cantidad_asistentes, GASTOS, NivelLiquido....
No hay distinción entre mayúsculas y minúsculas, por lo tanto los identificadores: Gastos, GASTOS y gastos hacen referencia a la misma variable.
Para asignar un valor a una variable utilizamos el igual (=)
*Si se asigna un número a una variable, la variable será numérica y se podrán realizar operaciones con ella.
*Si se asigna un texto (siempre escrito entre comillas) no se podrán realizar operaciones numéricas.
Las variables pueden ser de distinto tipo: Byte. Boolean, Integer, Long, Date, String, Object...
Los tipos más utilizados son:
- Boolean: Valor lógico, sólo tiene dos valores posibles True (verdadero) y False (falso).
- Integer: Número entero
- Date: Fecha
- String: Cadena de caracteres.
Dim num As Integer
Para declarar la variable num como un número entero.
- Operadores
Suma:+
Resta:-
Multiplicación:*
División:/
Potencia:^
División entera:\
Operadores relacionales:( Generan como resultado verdadero o falso)
Mayor:>
Menor:<
Mayor o igual:>=
Menor o igual:<=
Igual:=
Operadores lógicos:(Generan como resultado otro valor lógico)
And:conjunción
Or:disyunción
Not:negación
Operador de concatenación &:(se utiliza para concatenar dos cadenas de caracteres)
Ejemplo: "Hola" & "Mundo" --------> "HolaMundo"
Estructuras de control
Operadores lógicos:(Generan como resultado otro valor lógico)
And:conjunción
Or:disyunción
Not:negación
Operador de concatenación &:(se utiliza para concatenar dos cadenas de caracteres)
Ejemplo: "Hola" & "Mundo" --------> "HolaMundo"
Estructuras de control
- Secuencia
Si se desea escribir una instrucción en más de una línea, se debe utilizar el guión bajo (_) que indica la continuación en la línea siguiente.
Ejemplo3:
Sub Calcula()
numero = InputBox("Escribe un valor")
MsgBox numero * 2
End Sub
Ejercicio4: Crea un procedimiento en el que calcules el cuadrado de un número.
Ejercicio5: Crea un procedimiento en el que calcules la suma de dos números.
Ejercicio6: Inventa un procedimiento utilizando algún operador aritmético.
Ejercicio5: Crea un procedimiento en el que calcules la suma de dos números.
Ejercicio6: Inventa un procedimiento utilizando algún operador aritmético.
- Decisión
If condición Then
acciones si la condición es verdadera
Else
acciones si la condición es falsa
Endif
Ejemplo4:
Sub Nota()
valor = InputBox("Ingresa la nota")
If valor >= 5 Then
MsgBox "Aprobado"
Else
MsgBox "Suspenso"
End If
End Sub
Ejercicio7: Crea un procedimiento que te diga si una persona es mayor de edad o menor.
Ejercicio8: Crea un procedimiento en el que dados dos números determines cual es mayor.
Ejercicio9: Crea un procedimiento en el que determines si un número es par o no.
- Iteración
Do While condición
Instrucción 1
Instrucción 2
......
Loop
Ejemplo5:Dado un número, N, calculamos mediante un procedimiento la suma de los N primeros enteros.
Sub SumaNumeros()
Dim n As Integer
i = 1
Suma = 0
n = InputBox("Escribe un número")
Do While i <= n
Suma = Suma + i
i = i + 1
Loop
MsgBox Suma
End Sub
Ejercicio10: Crea un procedimiento en el que determines el producto de los N primeros enteros.
Interacción entre VBA y hojas de cálculo.
- Objetos en VBA para Excel
Por ejemplo, un objeto de tipo Range representa celdas de un documento y permite leer y alterar los valores guardados en ellas.
Range permite acceder a las celdas de una hoja mediante el ingreso de las coordenadas de las celdas.
Ejemplo6: Programa que escribe en la celda C3 el doble de lo que hay en la celda C2.
Sub DuplicarValor()
dato = Range("C2").Value
Range("C3").Value = dato * 2
End Sub
Ejercicio11: Crea un procedimiento en el que en la primera columna escribas 20 números. En la celda C3 te debe aparecer su producto, en la celda D3 media.
Cells permite acceder a las celdas mediante la especificación de sus coordenadas.
Ejemplo7: Programa que escribe en la celda A1 el valor 1000, en la celda B3 el valor 2000 y en la D1 3000.
Sub Rangos()
Cells(1, 1).Value = 1000
Cells(3, 2).Value = 2000
Cells(1, 4).Value = 3000
End Sub
(Observación es lo mismo Cells(1, 1).Value = 1000 que Cells(1, 1) = 1000, no es necesario poner Value)
Ejercicio12: Crea un procedimiento en el que calcules la tabla del 9. Debes introducir los datos como se muestra en la siguiente tabla y dar el resultado en la columna E.
Ejercicio13: Crea
un procedimiento
en el que calcules la tabla de multiplicar correspondiente al número indicado en la celda A1 (la tabla empieza a desplegarse desde la línea 3 en adelante)
No hay comentarios:
Publicar un comentario