You are on page 1of 18

Excel Avanzado con VBA 03

Ing. Enrique Alfaro

Ing.

Enrique Alfaro

17/02/2013

VARIABLES, CONSTANTES, EXPRESIONES Y TIPOS DE DATOS

Variables y tipos de datos


El propsito principal de VBA es manipular datos. Tambin se pueden guardan en las variables que se crean. Una variable es una localizacin de almacenamiento con nombre, dentro de la memoria del ordenador. VBA tiene algunas reglas relacionadas con los nombres de las variables: Se pueden usar caracteres alfabticos, nmeros y algn carcter de puntuacin, pero el primero de los caracteres debe ser alfabtico VBA no distingue entre maysculas y minsculas No se pueden usar espacios ni puntos No se pueden incrustar en el nombre de una variable los siguientes smbolos: #, $, %,! Los nombres de las variables pueden tener hasta 254 caracs.

Tipos de variables
Tipo de datos

Tamao de almacenamiento 1 byte


2 bytes 2 bytes 4 bytes

Intervalo

Byte
Boolean Integer Long (entero largo)

0 a 255 (enteror positivos)


True o False -32.768 a 32.767 -2.147.483.648 a 2.147.483.647 -3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos -922.337.203.685.477,5808 a 922.337.203.685.477,5807 1 de enero de 100 a 31 de diciembre de 9999 Cualquier referencia a tipo Object Desde 0 a 2.000 millones Cualquier valor numrico hasta el intervalo de un tipo Double El mismo intervalo que para un tipo String de longitud variable

Single (coma flotante/precisin simple)

4 bytes

Double (coma flotante/precisin doble)

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)

8 bytes 8 bytes 4 bytes longitud de la cadena 16 bytes 22 bytes + longitud de cadena

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

AMBITO de las variables


El mbito de una variable determina el mdulo y el procedimiento en el que se puede usar una variable.
mbito Un procedimiento Al nivel de mdulo Todos los mdulos Cmo se declara una variable en este mbito Incluye instrucciones Dim, Static o Private dentro del procedimiento. Incluye una instruccin Dim antes del primer procedimiento de un mdulo. Incluye una instruccin Public antes del primer procedimiento de un mdulo

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

VARIABLES A NIVEL DE MDULO


Para que una variable est disponible para todos los procedimientos de un mdulo, se declara la variable antes del primer procedimiento del mdulo (fuera de cualquier procedimiento o funcin). Ejemplo:
DIM fecha As Date Sub Dias() 'Aqu va el cdigo End Sub Sub Meses() 'Aqu va el cdigo End Sub

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

Trabajar con CADENAS


Existen dos tipos de cadenas en VBA: Cadenas de longitud fija, que se declaran con un nmero especfico de caracteres. La mxima longitud es de 65.536 caracteres. Cadenas de longitud variable, que tericamente pueden tener hasta 2.000 milones de caracteres. Dim MiCadena As String * 50 Dim SuCadena As String

Ing.

Enrique Alfaro

17/02/2013

Trabajar con FECHAS


Dim Hoy As Date Dim HoraInicio As Date Const PrimerDa As Date = #1/1/2001# Const MedioDa As date = #12:00:00 PM#

Const es una palabra reservada para declarar constantes.

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.

x=1 x=x+1 x = (y * 2) / (z * 2) archivoabierto = true Range(Ao). Value = 2010

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

TIPOS DE DATOS DEFINIDOS POR EL USUARIO


VBA permite crear tipos de datos personalizados definidos por el usuario.

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

You might also like