You are on page 1of 5

1 EXCEL VBA PROGRAMACION DICIEMBRE 2012 PRIMERA CLASE EXCEL PROGRAMACION VBA VBA: Lenguaje de programacin orientada al Excel.

En VBA se desarrollan una serie de programas denominadas procedimientos (macros) y funciones. Las macros se pueden programar ( lo ideal) como tambin se pueden grabar (generar cdigo) y las funciones se programan. =suma(a1,a2) =mipropiafuncion(argumentos) Fundamentos de programacin Variables: es una posicin de memoria que temporalmente almacena un valor. Declaracin de una variable [dim/static/prvate/public] nombre as Tipo_datos Dim,static: variables locales (alcance limitado) Prvate:variable puede usada por n macros o n variables del mismo archivo. Public:puede ser usada entre varios archivos. Ejemplo: Dim x as integer(entero) Dim z as double(real) Dim dato as string(texto) Sintaxis de una Macro Sub nombre_macro() Instrucciones End sub Ejemplo: Sub imprimir() Cdigo End sub EDITOR DE VISUAL BASIC (ALT + F11) INSERTAR>MODULO

Atencio Oliva Ren Percy | [dingolongando@hotmail.com]

2 EXCEL VBA PROGRAMACION DICIEMBRE 2012 Ejemplo 1 Sub saludo() MsgBox "Bienvenido a VBA" End Sub Sub SUMAR() Dim x As Integer Dim z As Integer x=4 z=5 MsgBox x + z End Sub Ejemplo 2 Sub SUMAR() Dim x As Integer Dim z As Integer x = InputBox("ingrese numero 1") z = InputBox("ingrese numero 2") res = x + z MsgBox "la suma es:" & res End Sub Ejemplo 3 Sub hipotenusa() Dim ladoa As Double Dim ladob As Double Dim hip As Double ladoa = InputBox("Ingrese Lado A") ladob = InputBox("ingrese Lado B") hip = Sqr(ladoa * ladoa + ladob * ladob) MsgBox "la hipotenusa es: " & hip End Sub Ejemplo 4 Sub Area_circulo() Const pi As Double = 3.1416 Dim radio As Double Dim area As Double radio = InputBox("ingrese el radio") Atencio Oliva Ren Percy | [dingolongando@hotmail.com]

3 EXCEL VBA PROGRAMACION DICIEMBRE 2012 area = pi * radio * radio MsgBox "El area es: " & area End Sub Ejemplo 5 Sub Raices_Reales() Dim a As Double Dim b As Double Dim c As Double Dim x1 As Double Dim x2 As Double a = InputBox("ingrese valor a") b = InputBox("ingrese valor b") c = InputBox("ingrese valor c") Disc = b * b - 4 * a * c If Disc < 0 Then MsgBox " Error. No existen raices reales" Else x1 = (-b + Sqr(Disc)) / (2 * a) x2 = (-b - Sqr(Disc)) / (2 * a) MsgBox "Las raices son" & vbCrLf & _ "Raiz 1 : " & x1 & vbCrLf & _ "Raiz 2 : " & x2 & vbCrLf End If End Sub BUCLES Es un ciclo que permite ejecutar una serie de instrucciones n veces. Para ello existe una serie de bucles como: -Bucle For (para) -Bucle do While (mientras cumpla la condicion) -bucle do Until ( hasta que cumpla la condicion) -Bucle doWhile ( hacer mientras) BUCLE FOR: ejecuta una serie de instrucciones un determinado nmero de veces Sintaxis For contador=valor inicial TO valor_final STEP numero Instrucciones Next Atencio Oliva Ren Percy | [dingolongando@hotmail.com]

4 EXCEL VBA PROGRAMACION DICIEMBRE 2012 Ejemplo 1: Sub prueba_bucle() Dim contador As Integer For contador = 1 To 4 Step 2 MsgBox "Bucle Numero: " & contador Next End Sub Ejemplo 2 Sub producto_celdas() Dim n1 As Integer Dim n2 As Integer Dim contador As Integer Dim res As Integer Dim fila As Integer For contador = 2 To 6 n1 = Sheets("hoja2").Range("A" & contador) n2 = Sheets("hoja2").Range("b" & contador) res = n1 + n2 Sheets("hoja2").Range("C" & contador) = res Next End Sub Ejemplo 3 Sub multiplicador() Dim n1 As Integer Dim contador As Integer Dim res1 As Integer Dim res2 As Integer For contador = 2 To 6 n1 = Sheets("hoja2").Range("A" & contador) If n1 Mod 2 = 0 Then res1 = n1 * 2 Sheets("hoja2").Range("B" & contador) = res1 Else res2 = n1 * 3 Sheets("hoja2").Range("C" & contador) = res2 End If Next

Atencio Oliva Ren Percy | [dingolongando@hotmail.com]

5 EXCEL VBA PROGRAMACION DICIEMBRE 2012

Atencio Oliva Ren Percy | [dingolongando@hotmail.com]