PRÁCTICA 12. VISUAL BASIC EN EXCEL - Aspectos elementales

Introducción

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.
Escritura de código en VBA
  • Sub procedures
Comienzan con la palabra Sub y terminan con End Sub. 
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.

  • Instrucciones elementales
Para el ingreso de datos mediante un cuadro de diálogo:
 InputBox( texto a desplegar)
 Ejemplo2: 

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
Cada variable se identifica por su nombre.
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.
Para declarar una variable se utiliza la instrucción Dim, un ejemplo sería:

Dim num As Integer
Para declarar la variable num como un número entero.
  • Operadores
Operadores aritméticos: (Generan como resultado un número)
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
  • Secuencia
Las instrucciones se escriben línea por línea.
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.
  • Decisión
Determina el curso de acción a seguir dependiendo del valor de verdad de una condició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
 Realizar iteraciones mientras una condición es verdadera.

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
Representan documentos o partes de un documento de Excel, para acceder y/o modificarlos desde VBA.

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