Visual Basic para Aplicaciones (VBA) en
Excel: aspectos elementales
Franco Guidi Polanco
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
[email protected]
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:
p
Automáticamente, “grabando” una secuencia de
operaciones (más fácil, pero más limitado).
Manualmente, escribiendo una a una las instrucciones
(más complejo, pero más flexible).
Franco Guidi Polanco
17/11/10
Para iniciar (Office 2007)
Barra de herramientas (Office 2007)
Desplegar “ficha de
programador” en cinta de
iopciones
Ficha del programador
Franco Guidi Polanco
17/11/10
3
Franco Guidi Polanco
17/11/10
2
4
Seguridad de macros (Office 2007)
Guardado de archivos en Office 2007
El guardado de planillas que contienen macros
debe hacerse en archivos “con macros
habilitadas”, de extensión XLSM.
Franco Guidi Polanco
17/11/10
5
Franco Guidi Polanco
17/11/10
Tipos de macros en VBA
Escritura de código en VBA
Subrutinas (“VBA sub procedures”): comandos que
realizan tareas.
Funciones (“VBA functions”): retornan un valor,
como las funciones integradas de Excel. Pueden
ser utilizadas por otras funciones o subrutinas, o
directamente desde una celda de una planilla.
Se debe ingresar a la “ventana del editor de VBA”
(oprimir botón Visual Basic en ficha del
programador, o ALT-F11).
El editor de VBA es otra aplicación, pero opera
integradamente con Excel.
Franco Guidi Polanco
17/11/10
7
Franco Guidi Polanco
17/11/10
6
8
Vista del Editor VBA
Inserción de un módulo
Oprimir botón derecho sobre ventana de proyecto
y seleccionar Insertar - Módulo
Franco Guidi Polanco
17/11/10
9
Franco Guidi Polanco
17/11/10
10
Código en un módulo
Sub procedures
Sub procedures
Franco Guidi Polanco
17/11/10
11
Franco Guidi Polanco
17/11/10
12
Ejecución de Sub procedures
Botón ejecutar en editor de VBA
En Excel: Herramientas – Macro - Ejecutar
En Excel: Herramientas Macro Ejecutar
Identificación de Sub procedures
Comienzan con la palabra Sub y terminan con
End Sub .
Se identifican por un nombre (seguido de
paréntesis)
Nombre
Sub
procedure
procedure
Ejemplo:
Inicio Sub
procedure
Fin Sub
Fin Sub
procedure
Franco Guidi Polanco
17/11/10
Paréntesis
(siempre van)
(siempre van)
Instrucciones
de Sub procedure
13
Elementos básicos de cualquier programa
(incluyendo Sub procedures)
Variables
Tipos de
datos
datos,
variables y
operadores
p
Estructuras
de control
Sub procedure
Expresiones
Instrucciones
Instrucciones
elementales
Cada variable se identifica por su nombre (recomendable
que sea significativo).
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
No se deben usar espacios ni comas como parte de un
nombre de variable, como tampoco los símbolos: #, $, %,
& o !, ni operadores aritméticos.
Por ejemplo:
edad, cantidad_asistentes, NivelLiquido, GASTOS
No hay distinción entre mayúsculas y minúsculas, por lo
tanto los identificadores: balanceFinal, BalanceFinal y
BALANCEFINAL hacen referencia a la misma variable.
Franco Guidi Polanco
17/11/10
15
Franco Guidi Polanco
17/11/10
16
Variables y el operador de asignación
Variables y tipos de datos
VBA, por omisión, crea automáticamente
variables cuando encuentra en el código un
identificador válido.
Para asignar un valor a una variable se debe
utilizar el operador de asignación.
Operador
asignación
identificador_variable = valor
Lado izquierdo
(receptor)
Lado derecho
(valor a asignar)
Si las variables son creadas automáticamente, el
tipo de dato que almacenan depende del valor
asignado:
Si se asigna un número la variable será numérica y se
podrán realizar con ella operaciones aritméticas.
it éti
d á
li
ll
i
dato = 100
Si se asigna un texto (que no represente un número) no
se podrán realizar operaciones numéricas Los textos
se podrán realizar operaciones numéricas. Los textos
deben escribirse siempre entre comillas dobles (“”).
d
l ”
dato = “Hola”
“
Franco Guidi Polanco
17/11/10
17
Franco Guidi Polanco
17/11/10
18
Variables y tipos de datos
Operadores aritméticos
Caso particular:
Si una variable recibe como valor un texto que q
representa a un número, entonces con esa variable sí se
pueden realizar operaciones aritméticas.
Los argumentos de los operadores aritméticos son
valores numéricos (números o variables
numéricas) y generan como resultado un número.
Operadores:
dato = “100”
l
l
Suma: +
Resta: -
Multiplicación: *
ó *
División: /
División entera: \
División entera: \
Elevación a potencia: ^
Franco Guidi Polanco
17/11/10
19
Franco Guidi Polanco
17/11/10
20
Operadores relacionales
Operadores lógicos
Los operadores relacionales permiten comparar
valores en expresiones. Generan como resultado
un valor lógico (verdadero o falso).
Operadores relacionales:
Mayor: >
Menor: <
Mayor o igual: >=
Menor o igual: <=
Igual: =
Igual: =
l
Los argumentos de operadores lógicos son valores
lógicos y generan como resultado otro valor lógico.
Operadores lógicos (existen otros):
)
g
(
p
And: conjunción
Or: disyunción
Not: negación
Franco Guidi Polanco
17/11/10
21
Franco Guidi Polanco
17/11/10
22
Operador de concatenación
Expresiones
Se utiliza para concatenar dos cadenas de
caracteres:
& (ampersand)
Ejemplo:
“Hola” & “Mundo” “HolaMundo”
nombre = “Hola”
nombre & “Mundo” “HolaMundo”
Aritméticas: generan como resultado un número.
Ejemplo:
(3 * 4) / 5
Lógicas: generan como resultado un valor lógico
(se utilizan generalmente como condiciones).
Ejemplo:
Edad > 18
(Edad > 18) And (Edad < 25)
(Valor <> 8) Or (Numero = 3) Or (Numero < 0)
(
)
(
)
)
(
Franco Guidi Polanco
17/11/10
23
Instrucciones elementales
Instrucciones elementales
Para ingreso de datos mediante un cuadro de
diálogo:
InputBox( texto a desplegar )
Para despliegue de resultados mediante cuadro de
diálogo:
MsgBox texto a desplegar
Franco Guidi Polanco
17/11/10
25
Pedro
Instrucciones elementales
Instrucciones elementales
Para convertir valor a entero (importante en el
ingreso de datos):
CInt( valor )
p
Importante: Toda vez que el usuario ingrese
valores que se suponen enteros, utilizaremos CInt
para convertir el valor leído a entero, a fin de
evitar errores de precisión, propios de otros tipos
de valores.
g
q
ó
d
d
Ej
Ejemplo:
l
edad = InputBox( “Ingrese edad” )
edad = CInt(edad)
Franco Guidi Polanco
17/11/10
27
Para redondear valores:
Round( valor, decimales)
ou d( valo , decimales)
Ejemplo:
Ejemplo:
Round( 1234.567 , 1) 1234.6
Estructuras de control: Secuencia
Estructuras de control: Decisión
Las instrucciones se escriben línea por línea.
Si se desea escribir una instrucción en más de una
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.
Determina el curso de acción a seguir dependiendo
del valor de verdad de una condición.
If condiciónThen
acciones si condición es verdadera
acciones sicondiciónesverdadera
Else
accionessicondiciónesfalsa
acciones si condición es falsa
Endif
Franco Guidi Polanco
17/11/10
29
Franco Guidi Polanco
17/11/10
30
Estructuras de control: Decisión
Ejemplo
Ejemplo: programa que pide al usuario una nota. Si la nota
es igual o superior a cuatro, escribe APROBADO, en caso
contrario escribe REPROBADO.
ib REPROBADO
t
i
Determinar si un número ingresado es o no par:
Franco Guidi Polanco
17/11/10
31
Estructuras de control: Iteración
Estructuras de control: Iteración
Realiza iteraciones mientras una condición es
verdadera.
Construir un procedimiento que calcule la suma de
los N primeros enteros, con N proporcionado por
el usuario.
Do While condición
instrucción 1
instrucción 1
instrucción 2
…
Loop
Franco Guidi Polanco
17/11/10
33
Franco Guidi Polanco
17/11/10
34
Interacción entre VBA y hojas de cálculo
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.
Franco Guidi Polanco
17/11/10
35
Franco Guidi Polanco
17/11/10
36
Principales objetos de VBA en Excel
Uso de referencias a objetos
Application
pp
(Excel)
Workbooks
(Libro)
Worksheets
(Hoja)
(Hoja)
Range
(Celdas)
Usando referencias a objetos se pueden acceder a datos en
planillas de Excel.
bj t
A
Acceso a los objetos:
a) Acceso a un Libro:
l
Application.Workbooks(“Ejemplo.xlsm”)
Application.Workbooks( Ejemplo.xlsm )
b) Acceso a una Hoja de un Libro:
Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”)
pp
)
p
g
(
)
j
(
c) Acceso a un Rango (celda) dentro de una Hoja de un Libro:
Application.Wor
Comentarios de: Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales (0)
No hay comentarios