Professional Documents
Culture Documents
Ing.
Enrique Alfaro
17/02/2013
Tipos de variables
Tipo de datos
Intervalo
Byte
Boolean Integer Long (entero largo)
4 bytes
8 bytes
Currency (entero + 4 decimales) Date (una fecha) Object (Ej. WorkBook) String Variant (con nmeros) Variant (con caracteres) Definido por el usuario (utilizando Type)
Nmero requerido por los El intervalo de cada elemento es el mismo que el intervalo de su tipo elementos de datos.
Ing.
Enrique Alfaro
17/02/2013
VARIABLES LOCALES Una variable local es una variable declarada dentro de un procedimiento. Estas variables se pueden usar slo en el procedimiento en que se declararon. Cuando el procedimiento finaliza, la variable deja de existir.
Ing.
Enrique Alfaro
17/02/2013
VARIABLES LOCALES
Comunmente, una variable local, se declara dentro de una instruccin DIM. Ejemplos: Sub MiSub() DIM x As Integer DIM Primero As Long DIM edad As Byte DIM TasaInteres As Single DIM FechadeHoy As Date DIM NombreUsuario As String * 20 'Aqu empieza el cdigo del procedimiento End Sub Esto tambin es vlido: DIM x As Integer, Primero As Long, TasaInteres As Single O: DIM x, y, z As Integer
Ing.
Enrique Alfaro
17/02/2013
Ing.
Enrique Alfaro
17/02/2013
Variables PUBLIC
Para que una variable est disponible para todos los procedimientos de un proyecto de VBA, se declara la variable a nivel de mdulo usando la palabra public Ejemplo: Public TasaAnual as Long
Ing.
Enrique Alfaro
17/02/2013
Ing.
Enrique Alfaro
17/02/2013
Ing.
Enrique Alfaro
17/02/2013
EXPRESIONES DE ASIGNACIN
Una expresin de asignacin es una instruccin de VBA que realiza evaluaciones matemticas y asigna el resultado a una variable o aun objeto. VBA usa el signo igual = como operador de asignacin.
Ing.
Enrique Alfaro
17/02/2013
OPERADORES
OPERADORES ARITMTICOS + Suma, - Resta, * Multiplicacin, / Divisin, \ Divisin entera, Mod Resto, ^ exponencial, & Concatenacin OPERADORES COMPARATIVOS = Igual, < Menor, > Mayor, <= Menor o igual, >= Mayor o igual, <> Distinto OPERADORES LGICOS Not (negacin lgica), And (conjuncin lgica), Or (disyuncin lgica)
Ing.
Enrique Alfaro
17/02/2013
MATRICES
Una matriz es un grupo de elementos del mismo tipo que tienen un nombre comn. Para referirse a un elemento especfico de una matriz se usa el nombre de la matriz y un nmero de ndice. Se declara con DIM o Public como cualquier variable. MATRICES DE UNA DIMENSION DIM MiMatriz(1 To 100) As Integer DIM MiMatriz (100) MiMatriz(1) = 20 MATRICES MULTIDIMENSIONALES DIM MiMatriz(1 To 100, 1 to 10) As Integer MiMatriz(1,2) = 20
Ing.
Enrique Alfaro
17/02/2013
VARIABLES DE OBJETO
Una variable de objeto es una variable que representa un objeto entero, como puede ser un rango o una hoja de clculo. Pueden simplificar el cdigo Pueden hacer que el cdigo se ejecute ms de prisa. Se declaran con DIM o Public. Veamos un ejemplo sin usar variables de objeto: Sub VarSinObj(); Worksheets(Hoja1).Range(A1).Value = 124 Worksheets(Hoja1).Range(A1).Font.Bold = True Worksheets(Hoja1).Range(A1).Font. Italic = True End Sub
Ing.
Enrique Alfaro
17/02/2013
VARIABLES DE OBJETO
La rutina anterior introduce un valor en la celda A1 de la HOJA1, del libro de trabajo activo, y despus aplica Negrita y cursiva a su contenido. Para reducir el cdigo se puede condensar la rutina con una variable de objeto: Sub VarObj(); Dim MiCelda As Range Set Micelda = Worksheets(Hoja1).Range(A1) MiCelda.Value = 124 MiCelda.Font.Bold = True MiCelda.Font. Italic = True End Sub
Ing.
Enrique Alfaro
17/02/2013
Type InfoClientes Los tipos de datos personalizados se definen fuera de Empresa As String * 25 los procedimientos, en la Ventas As Long parte superior del mdulo End Type Sub datos() Dim clientes(0 To 100) As InfoClientes clientes(0).Empresa = "camposol" clientes(0).Ventas = 50000 Range("a1").Value = clientes(0).Empresa Range("a2").Value = clientes(0).Ventas End Sub
Ing.
Enrique Alfaro
17/02/2013
FUNCIONES INTEGRADAS
Las funciones integradas de VBA no son las misma que las de Excel. La funcin UCASE de VBA, que convierte una cadena a maysculas es equivalente a la funcin MAYUSC de Excel.
Para obtener la lista de funciones de VBA, se teclea en el cdigo: VBA seguido de un punto. El Editor de VB despliega una lista con todas las funciones.
Ejemplo: Sub MostrarRaiz() MiValor = 25 RaizCuadrada = VBA.Sqr(MiValor) MsgBox RaizCuadrada End Sub
Ing.
Enrique Alfaro
17/02/2013
FUNCIONES INTEGRADAS
El objeto WorsheetFunction, que est contenido en el objeto Application, contiene todas las funciones de hoja de clculo que se pueden llamar desde los procedimientos VBA. Veamos un ejemplo para convertir un nmero decimal en nmero romano.
Sub MostrarRomano() ao = 2011 enromano=Application.WorksheetFunction.Roman(ao) Range(C1).value= enromano End Sub