Académique Documents
Professionnel Documents
Culture Documents
Una macro es una secuencia de instrucciones que automatiza alguna tarea. Una macro puede ser ejecutada repetidas veces. p Las macros pueden ser creadas de dos formas:
Automticamente, grabando una secuencia de operaciones (ms fcil, pero ms limitado). Manualmente, escribiendo una a una las instrucciones (ms complejo, pero ms flexible).
17/11/10
17/11/10
17/11/10
Guardado de archivos en Office 2007 El guardado de planillas que contienen macros debe hacerse en archivos con macros habilitadas, de extensin XLSM.
17/11/10
17/11/10
Tipos de macros 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.
Escritura de cdigo en VBA Se debe ingresar a la ventana del editor de VBA (oprimir botn Visual Basic en ficha del programador, o ALT-F11).
17/11/10
17/11/10
Insercin de un mdulo Oprimir botn derecho sobre ventana de proyecto y seleccionar Insertar - Mdulo
17/11/10
17/11/10
10
Cdigo en un mdulo
Sub procedures
17/11/10
11
17/11/10
12
Identificacin de Sub procedures Comienzan con la palabra Sub y terminan con End Sub . Se identifican por un nombre (seguido de parntesis) Ejemplo: Nombre
Inicio Sub procedure Sub procedure Parntesis (siempre van)
Elementos bsicos de cualquier programa (incluyendo Sub procedures) Tipos de datos, datos variables y operadores p Sub procedure Estructuras de control
Variables
Cada variable se identifica por su nombre (recomendable que sea significativo). El nombre de una variable puede contener casi cualquier letra o smbolo, pero debe comenzar siempre por una letra. No se deben usar espacios ni comas como parte de un nombre de variable, como tampoco los smbolos: #, $, %, & o !, ni operadores aritmticos. Por ejemplo:
edad, cantidad_asistentes, NivelLiquido, GASTOS
Expresiones
Instrucciones elementales
No hay distincin entre maysculas y minsculas, por lo tanto los identificadores: balanceFinal, BalanceFinal y BALANCEFINAL hacen referencia a la misma variable.
15 Franco Guidi Polanco 17/11/10 16
17/11/10
Variables y el operador de asignacin VBA, por omisin, crea automticamente variables cuando encuentra en el cdigo un identificador vlido. Para asignar un valor a una variable se debe utilizar el operador de asignacin.
Operador asignacin
Variables y tipos de datos Si las variables son creadas automticamente, el tipo de dato que almacenan depende del valor asignado:
Si se asigna un nmero la variable ser numrica y se podrn realizar con ella operaciones aritmticas. d li ll i it ti
dato = 100
Si se asigna un texto (que no represente un nmero) no se podrn realizar operaciones numricas. Los textos numricas deben escribirse siempre entre comillas dobles ().
identificador_variable
Lado izquierdo (receptor)
Franco Guidi Polanco 17/11/10
valor
dato = l d Hola
Franco Guidi Polanco 17/11/10 18
Operadores aritmticos Los argumentos de los operadores aritmticos son valores numricos (nmeros o variables numricas) y generan como resultado un nmero. Operadores:
Suma: + Resta: Multiplicacin: * l l Divisin: / Divisin entera: \ Elevacin a potencia: ^
dato = 100
17/11/10
19
17/11/10
20
Operadores relacionales Los operadores relacionales permiten comparar valores en expresiones. Generan como resultado un valor lgico (verdadero o falso). Operadores relacionales:
Mayor: > Menor: < Mayor o igual: >= l Menor o igual: <= Igual: =
Operadores lgicos Los argumentos de operadores lgicos son valores lgicos y generan como resultado otro valor lgico. Operadores lgicos (existen otros): p g ( )
And: conjuncin Or: disyuncin Not: negacin
17/11/10
21
17/11/10
22
Expresiones Aritmticas: generan como resultado un nmero. Ejemplo: (3 * 4) / 5 Lgicas: generan como resultado un valor lgico (se utilizan generalmente como condiciones). Ejemplo: Edad > 18 (Edad > 18) And (Edad < 25) ( (Valor <> 8) Or (Numero = 3) Or (Numero < 0) ) ( ) ( )
23
HolaMundo
HolaMundo
17/11/10
Instrucciones elementales
Pedro
Franco Guidi Polanco 17/11/10 25
Instrucciones elementales Para convertir valor a entero (importante en el ingreso de datos): CInt( valor ) Importante: Toda vez que el usuario ingrese p q g valores que se suponen enteros, utilizaremos CInt para convertir el valor ledo a entero, a fin de evitar errores d precisin, propios de otros tipos de d de valores. Ejemplo: Ej l edad = InputBox( Ingrese edad ) edad = CInt(edad)
Franco Guidi Polanco 17/11/10 27
Instrucciones elementales Para redondear valores: Round( valor, decimales) ou d( valo , Ejemplo:
Round( 1234.567 , 1) 1234.6
Estructuras de control: Secuencia Las instrucciones se escriben lnea por lnea. Si se desea escribir una instruccin en ms de una lnea, se debe utilizar el guin bajo ( _ ) que indica la continuacin en la lnea siguiente.
Estructuras de control: Decisin Determina el curso de accin a seguir dependiendo del valor de verdad de una condicin.
If condicin Then
17/11/10
29
17/11/10
30
17/11/10
31
Estructuras de control: Iteracin Construir un procedimiento que calcule la suma de los N primeros enteros, con N proporcionado por el usuario.
17/11/10
33
17/11/10
34
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.
17/11/10
35
17/11/10
36
Acceso a celdas mediante Range Range permite acceder a celdas en planillas, mediante el ingreso de las coordenadas de las celdas. Ejemplo:
Acceso mediante Cells Cells permite el acceso a celdas de planillas mediante la especificacin de sus coordenadas. Ejemplo:
Ejemplo 2 Un programa que escribe la tabla de multiplicar correspondiente al nmero ingresado en la celda A1 (la tabla empieza a desplegarse desde la lnea 3 en adelante)
Cells y Value Para acceder a un valor en una celda o modificar el valor existente, se puede omitir la especificacin de la propiedad Value al utilizar Cells: Es lo mismo: Cells(i,j).Value = 10 Cells(i,j) = 10 Como tambin: x = Cells(i,j).Value x = Cells(i,j)
Franco Guidi Polanco 17/11/10 47