SlideShare una empresa de Scribd logo
1 de 44
Programación Visual Basic en Excel
aplicado a finanzas y seguros
Julián Oliver
Actuario de Seguros
Profesor de la Universidad Pontificia Comillas
programación VB en Excel
• introducción a la programación
• Conceptos básicos
• Definición de funciones, procedimientos y
variables
• Modelo de objetos
• Uso de funciones de la hoja de cálculo
• ejemplos básicos
programación VB en Excel
• referencia básica de VB
• Operadores y funciones de VB
• Estructura condicional: If-Then-Else
• Estructura condicional: Select Case
• Bucle con contador: For Each-Next
• Bucle con condición: Do While y Do Until
• ejemplos básicos
programación VB en Excel
• ejemplos financieros y de seguros de vida
• Amortización de préstamos
– referencias dinámicas, funciones VB y bucles
• Tablas PERM/F 2000
– funciones VB
• ejemplos estadísticos y de seguros generales
• Cálculo de probabilidades
• Ajuste de distribuciones
– toma de decisiones
– bucles y referencias dinámicas
• actividad habitual: cálculo de
• bases técnicas y operaciones financieras
• provisiones y análisis de rentabilidad técnica
• necesidades:
• automatización y precisión de los cálculos
• posibilidades:
• lenguaje de programación para usuarios
• potente hoja de cálculo
introducción
• programación orientada a objetos
• objetos, clases y colecciones
• propiedades
• métodos
• principales objetos en Excel
• Application: la aplicación Excel en su conjunto
• WorkSheet: la hoja de cálculo
• Range: el rango de celdas
• ayuda completa en
Ayuda de Microsoft Excel – F1
Información de programación
Referencia a Visual Basic en Microsoft Excel
Objetos de Microsoft Excel
conceptos básicos
Definición
• función
conjunto de instrucciones de VB que sirve
para hacer cálculos y devolver un valor
• subrutina
conjunto de instrucciones de VB que sirve
para alterar propiedades de objetos
• variable
área de memoria que sirve para almacenar
datos
Definición
• función
Function test(parámetro1,...)
...
test = ....
End Function
• subrutina
Sub test(parámetro1,...)
...
End Sub
• variable
Dim variable1 As tipo, variable2 As ....
Tipos de variable más usados
• contadores, edades y duraciones ....
Integer
• enteros que vayan a ser usados en productos
Long
• tipos de interés, frecuencias relativas
Single
• capitales, primas, tasas, símbolos de conmut.
Double
Definición de variables
• el nombre de variable debe
• empezar por una letra
• estar compuesto de letras y números
• tener una longitud inferior a 255 caracteres
• no coincidir con palabras reservadas de VB
• ejemplo:
Dim x as Integer, prima as Double
Modelo de objetos de Excel
Modelo de objetos
 todo elemento que deba ser tratado se
representa por un objeto que tiene
propiedades y métodos:
 las propiedades representan las
características o variables que
configuran el objeto
 los métodos representan los
mecanismos que permiten manipular el
objeto
Modelo de objetos de Excel
application
representa a la instancia de Excel que se
está ejecutando
• propiedades
DisplayAlerts
DisplayFullScreen
Names (colección de nombres de celdas)
OperatingSystem, Version
• métodos
Calculate, InputBox
Modelo de objetos de Excel
workbook
representa el libro de cálculo
• propiedades
Count (colección)
• métodos
Add (colección)
Close
Open
Modelo de objetos de Excel
worksheet
representa la hoja de cálculo
• propiedades
Count (colección)
Visible
• métodos
Add (colección)
Delete
Paste (objeto ActiveSheet)
Modelo de objetos de Excel
range
representa un rango de celdas
• propiedades
CurrentRegion
Formula
NumberFormat
Value
• métodos
Copy, Cut, Select
ClearContents
Modelo de objetos de Excel
interior
representa el interior de un rango de celdas
• propiedades
Color
font
representa el tipo de letra de un rango de
celdas
• propiedades
Bold, Italic, Size
Modelo de objetos de Excel
Application
WorkSheet
Range
representación:
Application.WorkSheet.Range
objeto.objeto.propiedad
objeto.objeto.método
el objeto Application puede ser omitido
Modelo de objetos de Excel
ejemplo: copiar en la hoja 1 el contenido de las celdas
C2 a C5 en las celdas B4 a B7
Sub test()
Worksheets("Hoja1").Range("C3:C5").Copy
Worksheets("Hoja1").Range(“B4").Select
ActiveSheet.Paste
End Sub
Modelo de objetos de Excel
ejemplo: ocultar la hoja 1
Sub test()
WorkSheets(“Hoja1”).Visible = False
End Sub
ejemplo: mostrar la hoja 1
Sub test()
WorkSheets(“Hoja1”).Visible = True
End Sub
Modelo de objetos de Excel
ejemplo: borrar el contenido del rango B1:B7
Sub test()
WorkSheets(“Hoja1”).Range(“B1:B7”).
ClearContents
End Sub
ejemplo: poner formato al rango A1:A7
Sub test()
With WorkSheets(“Hoja1”).Range(“A1:A7”)
.Font.Color = RGB(0,0,255)
.NumberFormat = “€ #,##0.00”
End With
End Sub
Uso de funciones de Excel
ejemplo: encontrar el valor asociado a una letra
En Hoja1, rango E5:F7 completar
En la celda A1 completar =test(A2)
Function test()
Application.VLookup(letra,
Application.Worksheets("Hoja1").
Range("E5:F7"), 2)
End Function
A 2
B 5
C 3
Uso de funciones de Excel
 ayuda completa en
Ayuda de Microsoft Excel – F1
Información de programación
Referencia a Visual Basic en Microsoft Excel
Lista de funciones de hoja de cálculo disponibles para VB
 funciones habituales
Average() , Var(), VarP()
ChiInv(), Tinv()
NPer(), Rate(), PMT(), PV(), FV()
InputBox()
 uso genérico
Application.Función()
Algunas funciones de Excel
• Average() - Promedio()
• BetaDist() - Distr.Beta()
• BetaInv() - Distr.Beta.Inv()
• ChiInv() - Prueba.Chi.Inv()
• Fact() - Fact()
• FDist() - Distr.F()
• FInv() - Distr.F.Inv()
• FV() - VF()
Algunas funciones de Excel
• GammaDist() - Distr.Gamma()
• GammaInv() - Distr.Gamma.Inv()
• HLookUp() - BuscarH()
• Irr() - Tir()
• Ln()
• LogInv() - Distr.Log.Inv()
• LogNormDist() - Distr.Log.Norm()
Algunas funciones de Excel
• Max(), Min()
• NormDist() - Distr.Norm()
• NormInv() - Distr.Norm.Inv()
• NormSDist(), NormSInv()
• Nper()
• Pmt() - Pago()
• Poisson()
• PV() - VA()
Algunas funciones de Excel
• Round() - Redondear()
• RoundDown() - Redondear.Menos()
• RoundUp() - Redondear.Mas()
• StDev() - DevEst()
• StDevP() - DevEstP()
• Sum() - Suma(), SumIf() - Sumar.Si()
Algunas funciones de Excel
• TDist() - Distr.T()
• TInv() - Distr.T.Inv()
• Trim() - Espacios()
• Var(), VarP()
• VLookUp() - BuscarV()
Sub test()
Dim prob as Single, gl as Integer
With WorkSheets(“Hoja1”)
prob = .Range(“A1”)
gl = .Range(“A2”)
.Range(“B3”) = Application.ChiInv(prob,gl)
End With
End Sub
Ejemplos
Sub test()
Dim a as Integer, b as Integer, c as Integer
a = Application.InputBox(Type:=1,
Prompt:=“Introduzca la edad”)
b = MsgBox(“valor de a:” & a, vbOkCancel
+ vbInformation)
c = MsgBox(“valor de b:” & b, vbInformation)
End Sub
Ejemplos
Operadores
. operador jerárquico
+ - / * operadores aritméticos
^ potencia
 Mod cociente y restos enteros
& concatenación de textos
= asignación de valor
Función de densidad de una variante Exponencial:
Function fdExponencial(x, m)
Dim e As Double, lambda As Double
e = 2.71828182845905
lambda = 1 / m
fdExponencial = lambda * e ^ (-lambda * x)
End Function
Ejemplos
λ
λ λ 1
)(,0,·)( ·
=>= −
xExexf x
Asignar a la celda C5 la suma de las celdas C3 y C4:
Sub test()
Dim Hj As String, Rg As String
Dim celda1 As String, celda2 As String
Hj = "Hoja2"
Rg = "C5"
celda1 = "C3"
celda2 = "C4"
Worksheets(Hj).Range(Rg).Formula = "=SUM(" & celda1 &
":" & celda2 & ")"
End Sub
Ejemplos
Algunas funciones de VBA
• Abs()
• Array()
• Choose()
• Chr()
• CreateObject()
• Date()
• DateAdd()
• DateDiff()
• Days()
• Exp()
• FormatNumber()
• FV()
• IRR()
• Left()
• Log() [Ln]
• LTrim()
• Mid()
• Month()
• NPer()
• Pmt()
• PV()
• Rate()
• Replace()
• RGB()
• Right()
• Round()
• RTrim()
• Str()
• Trim()
• Year()
Sub test()
Dim a As Integer, b As Integer
a = Application.InputBox(Prompt:="Introduzca la
edad", Type:=1)
If a = False Then ' pulsó Cancelar
b = MsgBox("No introdujo edad", vbOKOnly,
"Resultado")
Else ' pulsó Ok
b = MsgBox("La edad introducida es " & a)
End If
End Sub
Estructura If – End If
Sub test()
Dim a As Integer, b As Integer
a = Application.InputBox(Prompt:="Introduzca la
edad", Type:=1)
If Not (a = False) Then ' pulsó Ok
Select Case a
Case Is < 14
b = MsgBox("No es asegurable")
Case 14 To 64
b = MsgBox("Es asegurable")
Case 65
b = MsgBox("Consultar a la dirección")
Case Else
b = MsgBox("No cumple requisitos")
End Select
End If
End Sub
Estructura Select Case
Sub test()
Dim fila As Integer
Worksheets("Hoja1").Range("B5").CurrentRegion.
Interior.Color = RGB(200, 200, 0)
For fila = 5 To 10 Step 1
Worksheets("Hoja1").Range("B" & fila).Value =
Int((10 * Rnd) - 5)
Next
For fila = 5 To 10 Step 1
Worksheets("Hoja1").Range("C" & fila).Value =
Int((10 * Rnd) - 5)
Next
End Sub
Bucle For - Next
Sub test()
Worksheets("Hoja1").Range("B5").CurrentRegion.
Interior.Color = RGB(200, 200, 0)
For Each c In
Worksheets("Hoja1").Range("B5").CurrentRegion.
Cells
If c.Value < 0 Then
c.Interior.Color = RGB(255, 0, 0)
End If
Next
End Sub
Bucle For - Next
Sub test()
Dim k As Integer
k = 1
Do Until Worksheets("Hoja3").Range("B" & k).Value =
""
If Worksheets("Hoja3").Range("B" & k).Value < 0
Then
Worksheets("Hoja3").Range("B“ & k).Interior.
Color = RGB(128, 128, 255)
End If
k = k + 1
Loop
End Sub
Bucle Do Until - Loop
Curso visual basic
Curso visual basic

Más contenido relacionado

Destacado

Macros Visual Basic Para Excel
Macros Visual Basic Para ExcelMacros Visual Basic Para Excel
Macros Visual Basic Para ExcelBerthamazon
 
Ejercicios de visual basic 2012
Ejercicios de visual basic 2012Ejercicios de visual basic 2012
Ejercicios de visual basic 2012iestp huari
 
1 eventos - controles - formularios
1   eventos - controles - formularios1   eventos - controles - formularios
1 eventos - controles - formulariosguest15144ec
 
Trabajo de eventos de visual basic
Trabajo de eventos de visual basicTrabajo de eventos de visual basic
Trabajo de eventos de visual basicchocoeli
 
EXCEL Visual basic
EXCEL Visual basicEXCEL Visual basic
EXCEL Visual basicLuis Pacheco
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basicromeprofe
 
Ejercicios de excel con visual basic
Ejercicios de excel con visual basicEjercicios de excel con visual basic
Ejercicios de excel con visual basicAleckFong
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasRenny Batista
 
Practicas de visual basic 6.0
Practicas de visual basic 6.0Practicas de visual basic 6.0
Practicas de visual basic 6.0nedlud
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - FormulariosRenny Batista
 
Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion betsabebarcenas
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Hernan Beati
 
Html5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyHtml5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyParadigma Digital
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCamilo Garcia
 

Destacado (20)

Macros Visual Basic Para Excel
Macros Visual Basic Para ExcelMacros Visual Basic Para Excel
Macros Visual Basic Para Excel
 
Ejercicios de visual basic 2012
Ejercicios de visual basic 2012Ejercicios de visual basic 2012
Ejercicios de visual basic 2012
 
1 eventos - controles - formularios
1   eventos - controles - formularios1   eventos - controles - formularios
1 eventos - controles - formularios
 
Fundamentos bd
Fundamentos bdFundamentos bd
Fundamentos bd
 
Trabajo de eventos de visual basic
Trabajo de eventos de visual basicTrabajo de eventos de visual basic
Trabajo de eventos de visual basic
 
EXCEL Visual basic
EXCEL Visual basicEXCEL Visual basic
EXCEL Visual basic
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Ejercicios de excel con visual basic
Ejercicios de excel con visual basicEjercicios de excel con visual basic
Ejercicios de excel con visual basic
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y Listas
 
Practicas de visual basic 6.0
Practicas de visual basic 6.0Practicas de visual basic 6.0
Practicas de visual basic 6.0
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - Formularios
 
Todo sobre HTML5
Todo sobre HTML5Todo sobre HTML5
Todo sobre HTML5
 
Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011
 
Curso HTML y CSS, parte 1
Curso HTML y CSS, parte 1Curso HTML y CSS, parte 1
Curso HTML y CSS, parte 1
 
Html5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoyHtml5 y css3: Introducción y aplicación desde hoy
Html5 y css3: Introducción y aplicación desde hoy
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en Scratch
 

Similar a Curso visual basic

Introducción a Matlab
Introducción a MatlabIntroducción a Matlab
Introducción a MatlabAdiel Castaño
 
02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptx02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptxOmarDS1
 
Computación unidad3
Computación unidad3Computación unidad3
Computación unidad3Fdy Renovato
 
Semana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlSemana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlvictdiazm
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...Nicola Strappazzon C.
 
DATA AUTOMATION.pdf
DATA AUTOMATION.pdfDATA AUTOMATION.pdf
DATA AUTOMATION.pdfHector Tineo
 
Taller processing arduino
Taller processing arduinoTaller processing arduino
Taller processing arduinojesusresta
 
Clasificacion de las funciones en excel
Clasificacion de las funciones en excelClasificacion de las funciones en excel
Clasificacion de las funciones en excelcetr
 
Funciones Matematicas y Estadisticas de Excel
Funciones Matematicas y Estadisticas de ExcelFunciones Matematicas y Estadisticas de Excel
Funciones Matematicas y Estadisticas de ExcelKarla Ordoñez
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
 

Similar a Curso visual basic (20)

Introducción a Matlab
Introducción a MatlabIntroducción a Matlab
Introducción a Matlab
 
02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptx02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptx
 
Excel
ExcelExcel
Excel
 
Computación unidad3
Computación unidad3Computación unidad3
Computación unidad3
 
Clase24
Clase24Clase24
Clase24
 
Programación III
Programación IIIProgramación III
Programación III
 
Ca 3
Ca 3Ca 3
Ca 3
 
Semana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlSemana 2 funciones sql en plsql
Semana 2 funciones sql en plsql
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
 
Guia funciones estadisticas
Guia funciones estadisticasGuia funciones estadisticas
Guia funciones estadisticas
 
Excel
Excel Excel
Excel
 
DATA AUTOMATION.pdf
DATA AUTOMATION.pdfDATA AUTOMATION.pdf
DATA AUTOMATION.pdf
 
Taller processing arduino
Taller processing arduinoTaller processing arduino
Taller processing arduino
 
Funciones
FuncionesFunciones
Funciones
 
Clasificacion de las funciones en excel
Clasificacion de las funciones en excelClasificacion de las funciones en excel
Clasificacion de las funciones en excel
 
Funciones Matematicas y Estadisticas de Excel
Funciones Matematicas y Estadisticas de ExcelFunciones Matematicas y Estadisticas de Excel
Funciones Matematicas y Estadisticas de Excel
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
 
Lenguaje r
Lenguaje rLenguaje r
Lenguaje r
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 

Más de Carlos Alcibi Garcia

Christie, agatha maldad bajo el sol
Christie, agatha   maldad bajo el solChristie, agatha   maldad bajo el sol
Christie, agatha maldad bajo el solCarlos Alcibi Garcia
 
Alberti, rafael la arboleda perdida
Alberti, rafael   la arboleda perdidaAlberti, rafael   la arboleda perdida
Alberti, rafael la arboleda perdidaCarlos Alcibi Garcia
 
Instituto cervantes saber leer (completo)
Instituto cervantes   saber leer (completo)Instituto cervantes   saber leer (completo)
Instituto cervantes saber leer (completo)Carlos Alcibi Garcia
 
Diario de invierno paul auster(2 p)
Diario de invierno   paul auster(2 p)Diario de invierno   paul auster(2 p)
Diario de invierno paul auster(2 p)Carlos Alcibi Garcia
 
Eco, umberto tratado de semiotica general
Eco, umberto   tratado de semiotica generalEco, umberto   tratado de semiotica general
Eco, umberto tratado de semiotica generalCarlos Alcibi Garcia
 
10 consejos para escribir un buen cuento
10 consejos para escribir un buen cuento10 consejos para escribir un buen cuento
10 consejos para escribir un buen cuentoCarlos Alcibi Garcia
 

Más de Carlos Alcibi Garcia (6)

Christie, agatha maldad bajo el sol
Christie, agatha   maldad bajo el solChristie, agatha   maldad bajo el sol
Christie, agatha maldad bajo el sol
 
Alberti, rafael la arboleda perdida
Alberti, rafael   la arboleda perdidaAlberti, rafael   la arboleda perdida
Alberti, rafael la arboleda perdida
 
Instituto cervantes saber leer (completo)
Instituto cervantes   saber leer (completo)Instituto cervantes   saber leer (completo)
Instituto cervantes saber leer (completo)
 
Diario de invierno paul auster(2 p)
Diario de invierno   paul auster(2 p)Diario de invierno   paul auster(2 p)
Diario de invierno paul auster(2 p)
 
Eco, umberto tratado de semiotica general
Eco, umberto   tratado de semiotica generalEco, umberto   tratado de semiotica general
Eco, umberto tratado de semiotica general
 
10 consejos para escribir un buen cuento
10 consejos para escribir un buen cuento10 consejos para escribir un buen cuento
10 consejos para escribir un buen cuento
 

Curso visual basic

  • 1.
  • 2. Programación Visual Basic en Excel aplicado a finanzas y seguros Julián Oliver Actuario de Seguros Profesor de la Universidad Pontificia Comillas
  • 3. programación VB en Excel • introducción a la programación • Conceptos básicos • Definición de funciones, procedimientos y variables • Modelo de objetos • Uso de funciones de la hoja de cálculo • ejemplos básicos
  • 4. programación VB en Excel • referencia básica de VB • Operadores y funciones de VB • Estructura condicional: If-Then-Else • Estructura condicional: Select Case • Bucle con contador: For Each-Next • Bucle con condición: Do While y Do Until • ejemplos básicos
  • 5. programación VB en Excel • ejemplos financieros y de seguros de vida • Amortización de préstamos – referencias dinámicas, funciones VB y bucles • Tablas PERM/F 2000 – funciones VB • ejemplos estadísticos y de seguros generales • Cálculo de probabilidades • Ajuste de distribuciones – toma de decisiones – bucles y referencias dinámicas
  • 6. • actividad habitual: cálculo de • bases técnicas y operaciones financieras • provisiones y análisis de rentabilidad técnica • necesidades: • automatización y precisión de los cálculos • posibilidades: • lenguaje de programación para usuarios • potente hoja de cálculo introducción
  • 7. • programación orientada a objetos • objetos, clases y colecciones • propiedades • métodos • principales objetos en Excel • Application: la aplicación Excel en su conjunto • WorkSheet: la hoja de cálculo • Range: el rango de celdas • ayuda completa en Ayuda de Microsoft Excel – F1 Información de programación Referencia a Visual Basic en Microsoft Excel Objetos de Microsoft Excel conceptos básicos
  • 8. Definición • función conjunto de instrucciones de VB que sirve para hacer cálculos y devolver un valor • subrutina conjunto de instrucciones de VB que sirve para alterar propiedades de objetos • variable área de memoria que sirve para almacenar datos
  • 9. Definición • función Function test(parámetro1,...) ... test = .... End Function • subrutina Sub test(parámetro1,...) ... End Sub • variable Dim variable1 As tipo, variable2 As ....
  • 10. Tipos de variable más usados • contadores, edades y duraciones .... Integer • enteros que vayan a ser usados en productos Long • tipos de interés, frecuencias relativas Single • capitales, primas, tasas, símbolos de conmut. Double
  • 11. Definición de variables • el nombre de variable debe • empezar por una letra • estar compuesto de letras y números • tener una longitud inferior a 255 caracteres • no coincidir con palabras reservadas de VB • ejemplo: Dim x as Integer, prima as Double
  • 12. Modelo de objetos de Excel
  • 13. Modelo de objetos  todo elemento que deba ser tratado se representa por un objeto que tiene propiedades y métodos:  las propiedades representan las características o variables que configuran el objeto  los métodos representan los mecanismos que permiten manipular el objeto
  • 14. Modelo de objetos de Excel application representa a la instancia de Excel que se está ejecutando • propiedades DisplayAlerts DisplayFullScreen Names (colección de nombres de celdas) OperatingSystem, Version • métodos Calculate, InputBox
  • 15. Modelo de objetos de Excel workbook representa el libro de cálculo • propiedades Count (colección) • métodos Add (colección) Close Open
  • 16. Modelo de objetos de Excel worksheet representa la hoja de cálculo • propiedades Count (colección) Visible • métodos Add (colección) Delete Paste (objeto ActiveSheet)
  • 17. Modelo de objetos de Excel range representa un rango de celdas • propiedades CurrentRegion Formula NumberFormat Value • métodos Copy, Cut, Select ClearContents
  • 18. Modelo de objetos de Excel interior representa el interior de un rango de celdas • propiedades Color font representa el tipo de letra de un rango de celdas • propiedades Bold, Italic, Size
  • 19.
  • 20. Modelo de objetos de Excel Application WorkSheet Range representación: Application.WorkSheet.Range objeto.objeto.propiedad objeto.objeto.método el objeto Application puede ser omitido
  • 21. Modelo de objetos de Excel ejemplo: copiar en la hoja 1 el contenido de las celdas C2 a C5 en las celdas B4 a B7 Sub test() Worksheets("Hoja1").Range("C3:C5").Copy Worksheets("Hoja1").Range(“B4").Select ActiveSheet.Paste End Sub
  • 22. Modelo de objetos de Excel ejemplo: ocultar la hoja 1 Sub test() WorkSheets(“Hoja1”).Visible = False End Sub ejemplo: mostrar la hoja 1 Sub test() WorkSheets(“Hoja1”).Visible = True End Sub
  • 23. Modelo de objetos de Excel ejemplo: borrar el contenido del rango B1:B7 Sub test() WorkSheets(“Hoja1”).Range(“B1:B7”). ClearContents End Sub ejemplo: poner formato al rango A1:A7 Sub test() With WorkSheets(“Hoja1”).Range(“A1:A7”) .Font.Color = RGB(0,0,255) .NumberFormat = “€ #,##0.00” End With End Sub
  • 24. Uso de funciones de Excel ejemplo: encontrar el valor asociado a una letra En Hoja1, rango E5:F7 completar En la celda A1 completar =test(A2) Function test() Application.VLookup(letra, Application.Worksheets("Hoja1"). Range("E5:F7"), 2) End Function A 2 B 5 C 3
  • 25. Uso de funciones de Excel  ayuda completa en Ayuda de Microsoft Excel – F1 Información de programación Referencia a Visual Basic en Microsoft Excel Lista de funciones de hoja de cálculo disponibles para VB  funciones habituales Average() , Var(), VarP() ChiInv(), Tinv() NPer(), Rate(), PMT(), PV(), FV() InputBox()  uso genérico Application.Función()
  • 26. Algunas funciones de Excel • Average() - Promedio() • BetaDist() - Distr.Beta() • BetaInv() - Distr.Beta.Inv() • ChiInv() - Prueba.Chi.Inv() • Fact() - Fact() • FDist() - Distr.F() • FInv() - Distr.F.Inv() • FV() - VF()
  • 27. Algunas funciones de Excel • GammaDist() - Distr.Gamma() • GammaInv() - Distr.Gamma.Inv() • HLookUp() - BuscarH() • Irr() - Tir() • Ln() • LogInv() - Distr.Log.Inv() • LogNormDist() - Distr.Log.Norm()
  • 28. Algunas funciones de Excel • Max(), Min() • NormDist() - Distr.Norm() • NormInv() - Distr.Norm.Inv() • NormSDist(), NormSInv() • Nper() • Pmt() - Pago() • Poisson() • PV() - VA()
  • 29. Algunas funciones de Excel • Round() - Redondear() • RoundDown() - Redondear.Menos() • RoundUp() - Redondear.Mas() • StDev() - DevEst() • StDevP() - DevEstP() • Sum() - Suma(), SumIf() - Sumar.Si()
  • 30. Algunas funciones de Excel • TDist() - Distr.T() • TInv() - Distr.T.Inv() • Trim() - Espacios() • Var(), VarP() • VLookUp() - BuscarV()
  • 31. Sub test() Dim prob as Single, gl as Integer With WorkSheets(“Hoja1”) prob = .Range(“A1”) gl = .Range(“A2”) .Range(“B3”) = Application.ChiInv(prob,gl) End With End Sub Ejemplos
  • 32. Sub test() Dim a as Integer, b as Integer, c as Integer a = Application.InputBox(Type:=1, Prompt:=“Introduzca la edad”) b = MsgBox(“valor de a:” & a, vbOkCancel + vbInformation) c = MsgBox(“valor de b:” & b, vbInformation) End Sub Ejemplos
  • 33.
  • 34. Operadores . operador jerárquico + - / * operadores aritméticos ^ potencia Mod cociente y restos enteros & concatenación de textos = asignación de valor
  • 35. Función de densidad de una variante Exponencial: Function fdExponencial(x, m) Dim e As Double, lambda As Double e = 2.71828182845905 lambda = 1 / m fdExponencial = lambda * e ^ (-lambda * x) End Function Ejemplos λ λ λ 1 )(,0,·)( · =>= − xExexf x
  • 36. Asignar a la celda C5 la suma de las celdas C3 y C4: Sub test() Dim Hj As String, Rg As String Dim celda1 As String, celda2 As String Hj = "Hoja2" Rg = "C5" celda1 = "C3" celda2 = "C4" Worksheets(Hj).Range(Rg).Formula = "=SUM(" & celda1 & ":" & celda2 & ")" End Sub Ejemplos
  • 37. Algunas funciones de VBA • Abs() • Array() • Choose() • Chr() • CreateObject() • Date() • DateAdd() • DateDiff() • Days() • Exp() • FormatNumber() • FV() • IRR() • Left() • Log() [Ln] • LTrim() • Mid() • Month() • NPer() • Pmt() • PV() • Rate() • Replace() • RGB() • Right() • Round() • RTrim() • Str() • Trim() • Year()
  • 38. Sub test() Dim a As Integer, b As Integer a = Application.InputBox(Prompt:="Introduzca la edad", Type:=1) If a = False Then ' pulsó Cancelar b = MsgBox("No introdujo edad", vbOKOnly, "Resultado") Else ' pulsó Ok b = MsgBox("La edad introducida es " & a) End If End Sub Estructura If – End If
  • 39. Sub test() Dim a As Integer, b As Integer a = Application.InputBox(Prompt:="Introduzca la edad", Type:=1) If Not (a = False) Then ' pulsó Ok Select Case a Case Is < 14 b = MsgBox("No es asegurable") Case 14 To 64 b = MsgBox("Es asegurable") Case 65 b = MsgBox("Consultar a la dirección") Case Else b = MsgBox("No cumple requisitos") End Select End If End Sub Estructura Select Case
  • 40. Sub test() Dim fila As Integer Worksheets("Hoja1").Range("B5").CurrentRegion. Interior.Color = RGB(200, 200, 0) For fila = 5 To 10 Step 1 Worksheets("Hoja1").Range("B" & fila).Value = Int((10 * Rnd) - 5) Next For fila = 5 To 10 Step 1 Worksheets("Hoja1").Range("C" & fila).Value = Int((10 * Rnd) - 5) Next End Sub Bucle For - Next
  • 41. Sub test() Worksheets("Hoja1").Range("B5").CurrentRegion. Interior.Color = RGB(200, 200, 0) For Each c In Worksheets("Hoja1").Range("B5").CurrentRegion. Cells If c.Value < 0 Then c.Interior.Color = RGB(255, 0, 0) End If Next End Sub Bucle For - Next
  • 42. Sub test() Dim k As Integer k = 1 Do Until Worksheets("Hoja3").Range("B" & k).Value = "" If Worksheets("Hoja3").Range("B" & k).Value < 0 Then Worksheets("Hoja3").Range("B“ & k).Interior. Color = RGB(128, 128, 255) End If k = k + 1 Loop End Sub Bucle Do Until - Loop