SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
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
fguidi@ucv.cl
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).
17/11/10Franco Guidi Polanco 2
Para iniciar (Office 2007)
Desplegar “ficha de
programador” en cinta de
iopciones
17/11/10Franco Guidi Polanco 3
Barra de herramientas (Office 2007)
Ficha del programador
17/11/10Franco Guidi Polanco 4
Seguridad de macros (Office 2007)
17/11/10Franco Guidi Polanco 5
Guardado de archivos en Office 2007
El guardado de planillas que contienen macros
debe hacerse en archivos “con macros
habilitadas”, de extensión XLSM.
17/11/10Franco Guidi Polanco 6
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.
17/11/10Franco Guidi Polanco 7
Escritura de código en VBA
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.
17/11/10Franco Guidi Polanco 8
Vista del Editor VBA
17/11/10Franco Guidi Polanco 9
Inserción de un módulo
Oprimir botón derecho sobre ventana de proyecto
y seleccionar Insertar - Módulo
17/11/10Franco Guidi Polanco 10
Código en un módulo
17/11/10Franco Guidi Polanco 11
Sub proceduresSub procedures
17/11/10Franco Guidi Polanco 12
Identificación de Sub procedures
Comienzan con la palabra Sub y terminan con
End Sub .
Se identifican por un nombre (seguido de
paréntesis)
Ejemplo:
Paréntesis
(siempre van)
Nombre
Sub
procedure (siempre van)
Inicio Sub
procedure
procedure
Fin Sub
17/11/10Franco Guidi Polanco 13
Fin Sub
procedure Instrucciones
de Sub procedure
Ejecución de Sub procedures
Botón ejecutar en editor de VBA
En Excel: Herramientas – Macro - EjecutarEn Excel: Herramientas Macro Ejecutar
Elementos básicos de cualquier programa
(incluyendo Sub procedures)
Tipos de
datos Estructurasdatos,
variables y
operadores
de control
Sub procedure
p
Instrucciones
Expresiones
Instrucciones
elementales
17/11/10Franco Guidi Polanco 15
Variables
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 unNo 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.
17/11/10Franco Guidi Polanco 16
Variables y el operador de asignación
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
Lado izquierdo Lado derecho
identificador_variable = valor
17/11/10Franco Guidi Polanco 17
(receptor) (valor a asignar)
Variables y tipos de datos
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
d á li ll i it étipodrán realizar con ella operaciones aritméticas.
dato = 100
Si se asigna un texto (que no represente un número) no
se podrán realizar operaciones numéricas Los textosse podrán realizar operaciones numéricas. Los textos
deben escribirse siempre entre comillas dobles (“”).
d “ l ”
17/11/10Franco Guidi Polanco 18
dato = “Hola”
Variables y tipos de datos
Caso particular:
Si una variable recibe como valor un texto queq
representa a un número, entonces con esa variable sí se
pueden realizar operaciones aritméticas.
dato = “100”
17/11/10Franco Guidi Polanco 19
Operadores aritméticos
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:
Suma: +
Resta: -
l l ó *Multiplicación: *
División: /
División entera: División entera: 
Elevación a potencia: ^
17/11/10Franco Guidi Polanco 20
Operadores relacionales
Los operadores relacionales permiten comparar
valores en expresiones. Generan como resultado
un valor lógico (verdadero o falso).
Operadores relacionales:
Mayor: >
Menor: <
lMayor o igual: >=
Menor o igual: <=
Igual: =Igual: =
17/11/10Franco Guidi Polanco 21
Operadores lógicos
Los argumentos de operadores lógicos son valores
lógicos y generan como resultado otro valor lógico.
Operadores lógicos (existen otros):p g ( )
And: conjunción
Or: disyunción
Not: negación
17/11/10Franco Guidi Polanco 22
Operador de concatenación
Se utiliza para concatenar dos cadenas de
caracteres:
& (ampersand)
Ejemplo:
“Hola” & “Mundo” “HolaMundo”
nombre = “Hola”
nombre & “Mundo” “HolaMundo”
17/11/10Franco Guidi Polanco 23
Expresiones
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)( ) ( ) ( )
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
17/11/10Franco Guidi Polanco 25
Instrucciones elementales
Pedro
Instrucciones elementales
Para convertir valor a entero (importante en el
ingreso de datos):
CInt( valor )
Importante: Toda vez que el usuario ingresep q g
valores que se suponen enteros, utilizaremos CInt
para convertir el valor leído a entero, a fin de
d ó devitar errores de precisión, propios de otros tipos
de valores.
Ej lEjemplo:
edad = InputBox( “Ingrese edad” )
edad = CInt(edad)
17/11/10Franco Guidi Polanco 27
Instrucciones elementales
Para redondear valores:
Round( valor, decimales)ou d( valo , decimales)
Ejemplo:Ejemplo:
Round( 1234.567 , 1) 1234.6
Estructuras de control: Secuencia
Las instrucciones se escriben línea por línea.
Si se desea escribir una instrucción en más de unaSi 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.
17/11/10Franco Guidi Polanco 29
Estructuras de control: 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 condición es verdaderaacciones si condición es verdadera
Else
acciones si condición es falsaacciones si condición es falsa
Endif
17/11/10Franco Guidi Polanco 30
Estructuras de control: Decisión
Ejemplo: programa que pide al usuario una nota. Si la nota
es igual o superior a cuatro, escribe APROBADO, en caso
t i ib REPROBADOcontrario escribe REPROBADO.
17/11/10Franco Guidi Polanco 31
Ejemplo
Determinar si un número ingresado es o no par:
Estructuras de control: Iteración
Realiza iteraciones mientras una condición es
verdadera.
Do While condición
instrucción 1instrucción 1
instrucción 2
…
Loop
17/11/10Franco Guidi Polanco 33
Estructuras de control: Iteración
Construir un procedimiento que calcule la suma de
los N primeros enteros, con N proporcionado por
el usuario.
17/11/10Franco Guidi Polanco 34
Interacción entre VBA y hojas de cálculoInteracción entre VBA y hojas de cálculo
17/11/10Franco Guidi Polanco 35
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/10Franco Guidi Polanco 36
Principales objetos de VBA en Excel
Applicationpp
(Excel)
Workbooks
(Libro)
Worksheets
(Hoja)
Range
(Hoja)
17/11/10Franco Guidi Polanco 37
(Celdas)
Uso de referencias a objetos
Usando referencias a objetos se pueden acceder a datos en
planillas de Excel.
A l bj tAcceso a los objetos:
a) Acceso a un Libro:
Application.Workbooks(“Ejemplo.xlsm”)Application.Workbooks( Ejemplo.xlsm )
b) Acceso a una Hoja de un Libro:
Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”)pp ( j p ) ( g )
c) Acceso a un Rango (celda) dentro de una Hoja de un Libro:
Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”).Range(“C2”)pp ( j p ) ( g ) g ( )
d) Acceso a un Valor de un Rango (celda) dentro de una Hoja
de un Libro:
Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”).
Range(“C2”).Value
17/11/10Franco Guidi Polanco 38
Uso de referencias a objetos (por omisión)
Se puede omitir la referencia Application:
Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”).Range(“C2”)( j p ) ( g ) g ( )
.Value
l f kb k bSi se omite la referencia Workbooks se asume Libro
actual:
Wo ksheets(“Ing esos”) Range(“C2”) Val eWorksheets(“Ingresos”).Range(“C2”).Value
Si se omite la referencia Worksheets se asume HojaSi se omite la referencia Worksheets se asume Hoja
de trabajo actual:
Range(“C2”).ValueRange( C2 ).Value
17/11/10Franco Guidi Polanco 39
Acceso a celdas mediante Range
Range permite acceder a celdas en planillas,
mediante el ingreso de las coordenadas de las
celdas. Ejemplo:
17/11/10Franco Guidi Polanco 40
Acceso mediante Cells
Cells permite el acceso a celdas de planillas
mediante la especificación de sus coordenadas.
Ejemplo:
Uso combinado de Range y Cells para acceder a
celdas de planillas
Ejemplo
Un Sub Procedure que escribe en una planilla la
tabla del 2:
Ejemplo (cont.)
Código:
Ejemplo 2
Un programa que escribe la tabla de multiplicar
correspondiente al número ingresado en la celda
A1 (la tabla empieza a desplegarse desde la línea
3 en adelante)
Ejemplo 2 (cont.)
Código:
Cells y Value
Para acceder a un valor en una celda o modificar
el valor existente, se puede omitir la especificación
de la propiedad Value al utilizar Cells:
Es lo mismo:
Cells(i,j).Value = 10
Cells(i,j) = 10
Como también:
x = Cells(i,j).Value
x = Cells(i,j)x Cells(i,j)
17/11/10Franco Guidi Polanco 47

Más contenido relacionado

La actualidad más candente

Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaTutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaCECYT Num. 6, Miguel Othon de Mendizabal
 
Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010aliesti
 
Presentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezPresentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezRenee Gonzalez
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Alejandro Centeno
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#Eduardo Carrillo
 
08. Procesador De Textos. Writer Para Las Matematicas
08. Procesador De Textos. Writer Para Las Matematicas08. Procesador De Textos. Writer Para Las Matematicas
08. Procesador De Textos. Writer Para Las MatematicasJosé M. Padilla
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NETpabloesp
 

La actualidad más candente (20)

Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaTutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
 
Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010
 
Presentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezPresentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalez
 
Funciones y macros con excel
Funciones y macros con excelFunciones y macros con excel
Funciones y macros con excel
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Windows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejerciciosWindows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejercicios
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#
 
Creando macros
Creando macrosCreando macros
Creando macros
 
Visual basic.
Visual basic.Visual basic.
Visual basic.
 
Como crear un macro
Como crear un macroComo crear un macro
Como crear un macro
 
Manual de delphi 6.0
Manual de delphi 6.0Manual de delphi 6.0
Manual de delphi 6.0
 
C Sharp Avanzado Dia 1
C Sharp Avanzado   Dia 1C Sharp Avanzado   Dia 1
C Sharp Avanzado Dia 1
 
08. Procesador De Textos. Writer Para Las Matematicas
08. Procesador De Textos. Writer Para Las Matematicas08. Procesador De Textos. Writer Para Las Matematicas
08. Procesador De Textos. Writer Para Las Matematicas
 
Práctica 1 estudiante
Práctica 1 estudiantePráctica 1 estudiante
Práctica 1 estudiante
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
Practica de delphi
Practica de delphiPractica de delphi
Practica de delphi
 

Similar a Master vba

Similar a Master vba (20)

Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
Diccionario visual basic
Diccionario visual basicDiccionario visual basic
Diccionario visual basic
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Operadores y Expresiones en C++
Operadores y Expresiones en C++Operadores y Expresiones en C++
Operadores y Expresiones en C++
 
Clase 5
Clase 5Clase 5
Clase 5
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Estructuras basicas tecnologia
Estructuras basicas  tecnologiaEstructuras basicas  tecnologia
Estructuras basicas tecnologia
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Introducción a los entornos de programación
Introducción a los entornos de programaciónIntroducción a los entornos de programación
Introducción a los entornos de programación
 
Fundamentos De Algoritmia
Fundamentos De AlgoritmiaFundamentos De Algoritmia
Fundamentos De Algoritmia
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Algoritmos y programas ing civil
Algoritmos y programas ing civil Algoritmos y programas ing civil
Algoritmos y programas ing civil
 
Introducción a la programación
Introducción  a la programaciónIntroducción  a la programación
Introducción a la programación
 

Master vba

  • 1. 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 fguidi@ucv.cl 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). 17/11/10Franco Guidi Polanco 2 Para iniciar (Office 2007) Desplegar “ficha de programador” en cinta de iopciones 17/11/10Franco Guidi Polanco 3 Barra de herramientas (Office 2007) Ficha del programador 17/11/10Franco Guidi Polanco 4
  • 2. Seguridad de macros (Office 2007) 17/11/10Franco Guidi Polanco 5 Guardado de archivos en Office 2007 El guardado de planillas que contienen macros debe hacerse en archivos “con macros habilitadas”, de extensión XLSM. 17/11/10Franco Guidi Polanco 6 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. 17/11/10Franco Guidi Polanco 7 Escritura de código en VBA 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. 17/11/10Franco Guidi Polanco 8
  • 3. Vista del Editor VBA 17/11/10Franco Guidi Polanco 9 Inserción de un módulo Oprimir botón derecho sobre ventana de proyecto y seleccionar Insertar - Módulo 17/11/10Franco Guidi Polanco 10 Código en un módulo 17/11/10Franco Guidi Polanco 11 Sub proceduresSub procedures 17/11/10Franco Guidi Polanco 12
  • 4. Identificación de Sub procedures Comienzan con la palabra Sub y terminan con End Sub . Se identifican por un nombre (seguido de paréntesis) Ejemplo: Paréntesis (siempre van) Nombre Sub procedure (siempre van) Inicio Sub procedure procedure Fin Sub 17/11/10Franco Guidi Polanco 13 Fin Sub procedure Instrucciones de Sub procedure Ejecución de Sub procedures Botón ejecutar en editor de VBA En Excel: Herramientas – Macro - EjecutarEn Excel: Herramientas Macro Ejecutar Elementos básicos de cualquier programa (incluyendo Sub procedures) Tipos de datos Estructurasdatos, variables y operadores de control Sub procedure p Instrucciones Expresiones Instrucciones elementales 17/11/10Franco Guidi Polanco 15 Variables 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 unNo 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. 17/11/10Franco Guidi Polanco 16
  • 5. Variables y el operador de asignación 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 Lado izquierdo Lado derecho identificador_variable = valor 17/11/10Franco Guidi Polanco 17 (receptor) (valor a asignar) Variables y tipos de datos 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 d á li ll i it étipodrán realizar con ella operaciones aritméticas. dato = 100 Si se asigna un texto (que no represente un número) no se podrán realizar operaciones numéricas Los textosse podrán realizar operaciones numéricas. Los textos deben escribirse siempre entre comillas dobles (“”). d “ l ” 17/11/10Franco Guidi Polanco 18 dato = “Hola” Variables y tipos de datos Caso particular: Si una variable recibe como valor un texto queq representa a un número, entonces con esa variable sí se pueden realizar operaciones aritméticas. dato = “100” 17/11/10Franco Guidi Polanco 19 Operadores aritméticos 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: Suma: + Resta: - l l ó *Multiplicación: * División: / División entera: División entera: Elevación a potencia: ^ 17/11/10Franco Guidi Polanco 20
  • 6. Operadores relacionales Los operadores relacionales permiten comparar valores en expresiones. Generan como resultado un valor lógico (verdadero o falso). Operadores relacionales: Mayor: > Menor: < lMayor o igual: >= Menor o igual: <= Igual: =Igual: = 17/11/10Franco Guidi Polanco 21 Operadores lógicos Los argumentos de operadores lógicos son valores lógicos y generan como resultado otro valor lógico. Operadores lógicos (existen otros):p g ( ) And: conjunción Or: disyunción Not: negación 17/11/10Franco Guidi Polanco 22 Operador de concatenación Se utiliza para concatenar dos cadenas de caracteres: & (ampersand) Ejemplo: “Hola” & “Mundo” “HolaMundo” nombre = “Hola” nombre & “Mundo” “HolaMundo” 17/11/10Franco Guidi Polanco 23 Expresiones 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)( ) ( ) ( )
  • 7. 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 17/11/10Franco Guidi Polanco 25 Instrucciones elementales Pedro Instrucciones elementales Para convertir valor a entero (importante en el ingreso de datos): CInt( valor ) Importante: Toda vez que el usuario ingresep q g valores que se suponen enteros, utilizaremos CInt para convertir el valor leído a entero, a fin de d ó devitar errores de precisión, propios de otros tipos de valores. Ej lEjemplo: edad = InputBox( “Ingrese edad” ) edad = CInt(edad) 17/11/10Franco Guidi Polanco 27 Instrucciones elementales Para redondear valores: Round( valor, decimales)ou d( valo , decimales) Ejemplo:Ejemplo: Round( 1234.567 , 1) 1234.6
  • 8. Estructuras de control: Secuencia Las instrucciones se escriben línea por línea. Si se desea escribir una instrucción en más de unaSi 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. 17/11/10Franco Guidi Polanco 29 Estructuras de control: 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 condición es verdaderaacciones si condición es verdadera Else acciones si condición es falsaacciones si condición es falsa Endif 17/11/10Franco Guidi Polanco 30 Estructuras de control: Decisión Ejemplo: programa que pide al usuario una nota. Si la nota es igual o superior a cuatro, escribe APROBADO, en caso t i ib REPROBADOcontrario escribe REPROBADO. 17/11/10Franco Guidi Polanco 31 Ejemplo Determinar si un número ingresado es o no par:
  • 9. Estructuras de control: Iteración Realiza iteraciones mientras una condición es verdadera. Do While condición instrucción 1instrucción 1 instrucción 2 … Loop 17/11/10Franco Guidi Polanco 33 Estructuras de control: Iteración Construir un procedimiento que calcule la suma de los N primeros enteros, con N proporcionado por el usuario. 17/11/10Franco Guidi Polanco 34 Interacción entre VBA y hojas de cálculoInteracción entre VBA y hojas de cálculo 17/11/10Franco Guidi Polanco 35 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/10Franco Guidi Polanco 36
  • 10. Principales objetos de VBA en Excel Applicationpp (Excel) Workbooks (Libro) Worksheets (Hoja) Range (Hoja) 17/11/10Franco Guidi Polanco 37 (Celdas) Uso de referencias a objetos Usando referencias a objetos se pueden acceder a datos en planillas de Excel. A l bj tAcceso a los objetos: a) Acceso a un Libro: Application.Workbooks(“Ejemplo.xlsm”)Application.Workbooks( Ejemplo.xlsm ) b) Acceso a una Hoja de un Libro: Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”)pp ( j p ) ( g ) c) Acceso a un Rango (celda) dentro de una Hoja de un Libro: Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”).Range(“C2”)pp ( j p ) ( g ) g ( ) d) Acceso a un Valor de un Rango (celda) dentro de una Hoja de un Libro: Application.Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”). Range(“C2”).Value 17/11/10Franco Guidi Polanco 38 Uso de referencias a objetos (por omisión) Se puede omitir la referencia Application: Workbooks(“Ejemplo.xlsm”).Worksheets(“Ingresos”).Range(“C2”)( j p ) ( g ) g ( ) .Value l f kb k bSi se omite la referencia Workbooks se asume Libro actual: Wo ksheets(“Ing esos”) Range(“C2”) Val eWorksheets(“Ingresos”).Range(“C2”).Value Si se omite la referencia Worksheets se asume HojaSi se omite la referencia Worksheets se asume Hoja de trabajo actual: Range(“C2”).ValueRange( C2 ).Value 17/11/10Franco Guidi Polanco 39 Acceso a celdas mediante Range Range permite acceder a celdas en planillas, mediante el ingreso de las coordenadas de las celdas. Ejemplo: 17/11/10Franco Guidi Polanco 40
  • 11. Acceso mediante Cells Cells permite el acceso a celdas de planillas mediante la especificación de sus coordenadas. Ejemplo: Uso combinado de Range y Cells para acceder a celdas de planillas Ejemplo Un Sub Procedure que escribe en una planilla la tabla del 2: Ejemplo (cont.) Código:
  • 12. Ejemplo 2 Un programa que escribe la tabla de multiplicar correspondiente al número ingresado en la celda A1 (la tabla empieza a desplegarse desde la línea 3 en adelante) Ejemplo 2 (cont.) Código: Cells y Value Para acceder a un valor en una celda o modificar el valor existente, se puede omitir la especificación de la propiedad Value al utilizar Cells: Es lo mismo: Cells(i,j).Value = 10 Cells(i,j) = 10 Como también: x = Cells(i,j).Value x = Cells(i,j)x Cells(i,j) 17/11/10Franco Guidi Polanco 47