Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Variables, Constantes,
Expresiones y Tipos de
Datos
Bytes usados
Rango de valores
Long
1 0 a 255
2 Verdadero o Falso
2 -32.768 hasta 32.767
-2.147.483.648 hasta
4 2.147.483.647
Single
Double
Currency
-3.402823E38 a -1.401298E-4545
(para valores negativos) y
1.4012298E-45 a 3.42823E38
4 (para valores positivos)
8
8
Date
Object
String (de longitud variable)
String (de longitud fija)
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 finliza, la variable deja de existir y
Excel libera su memoria.
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
Variables locales
La manera ms comn de declarar una variable local es situarla dentro de una
instruccin DIM.
Sub MiSub()
DIM x As Integer
DIM First As Long
DIM InerestRate As Single
DIM TodaysDate As Date
DIM UserName As String * 20
Aqu se sita el cdigo del procedimiento
End Sub
Esto tambin es vlido:
DIM x As Integer, y As Integer, z As Integer
Esto no es vlido:
DIM x, y, z As Integer
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
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 con el uso de la
palabra public.
Public IntersAnual as Long
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
CONSTANTES
Declarar Constantes
Las constantes se declaran usando Const.
Const NumTrim As Integer = 4
Const Inters = 0.05, Periodo = 12
Const Nombre Mod as String = Macros Presupuestos
Public Const NombreApp As String = Aplicacin Presupuestos
Al igual que las variables, las constantes tambin poseen un mbito.
Para que una constante est disponible slo dentro de in determinado
procedimiento, hay que declararla despus de Sub o Function para
convertirla en una constante local.
Para que una constante est disponible para todos los procedimientos
de un mdulo, se tiene que declarar antes del primer procedimiento de
un mdulo.
Para que una constante est disponible para todos los mdulos de un
libro de trabajo, hay que usar la palabra Public, y declarar la constante
antes del primer procedimiento de un mdulo.
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
CONSTANTES
Declarar Constantes
Excel y VBA contienen muchas constantes predeterminadas, que se pueden
usar sin necesidad de declararlas; de hecho no es necesario conocer el
valor de estas constantes para usarlas.
Sub CalcManual()
Application.Calculation = xlManual
End Sub
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
Se puede usar una secuencia de
x = (y * 2) / (z * 2)
continuacin (espacio seguido de
FileOpen = true
un signo de subrayado) para
facilitar la lectura de expresiones
Range(Ao).Value = 1995
muy largas.
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
10
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), XoR (exclusin lgica), Eqv (equivalencia en dos
expresiones), Imp (implicacin lgica)
11
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.
Las variables de objeto son importante por dos razones:
Pueden simplificar el cdigo
Pueden hacer que el cdigo se ejecute ms de prisa.
Se declaran con DIM o Public.
Por ejemplo, la expresin siguiente declara AreaEntradaDatos como un
objeto Range.
Para ver como simplifican el cdigo, 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
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
12
13
Manipulacin objetos y
colecciones
14
15
16
Sub ConvertirMayus()
For Each Cell In Selection
Cell.Value = UCASE(Cell.Value)
Next Cell
End Sub
Convierte a maysculas un
rango previamente
seleccionado
17
ESTRUCTURAS IF...THEN
Se usa para ejecutar una o ms instrucciones de forma condicional. La
sintaxis general es:
If condicin Then inst_verdaderas [Else inst_falsas]
Sub Positivos()
a = InputBox("Ingrese un nmero")
If a > 0 Then
Ingresa un nmero, y si es
MsgBox "Nmero Positivo"
mayor que cero muestra el
End If
mensaje Nmero Positivo
End Sub
Sub Positivos_Negativos()
a = InputBox("Ingrese un nmero")
If a > 0 Then
MsgBox "Nmero Positivo"
Else
MsgBox "Nmero negativo"
End Sub
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
Ingresa un nmero, y si es
mayor que cero muestra el
mensaje Nmero Positivo,
y si no Nmero Negativo
18
ESTRUCTURAS IF...THEN
Sub Positivos_Negativos_Cero()
a = InputBox("Ingrese un nmero")
If a > 0 Then
MsgBox "Nmero Positivo"
ElseIf a < 0 Then
MsgBox "Nmero negativo "
ElseIf a = 0 Then
MsgBox " Cero "
End If
End Sub
Ingresa un nmero, y si es
mayor que cero muestra el
mensaje Nmero Positivo,
si es menor que cero
muestra el mensaje
Nmero Negativo, y si es
cero muestra el mensaje
Cero
19
20
End Sub
21
BUCLES FOR...NEXT
Esta sentencia de iteracin se ejecuta un nmero determinado de veces
Su sintaxis es:
For contador = empezar To finalizar [Step valorincremento]
[Instrucciones]
[Exit For]
[instrucciones]
Next [contador]
Sub SumaNmeros
Sum = 0
For Count = 0 To 10
Sum = Sum + Count
Next Count
MsgBox Sum
End Sub
22
BUCLES FOR...NEXT
Sub SumaNmerosPares
Sum = 0
Suma los nmeros pares
For Count = 0 To 10 Step 2
entre 0 y 10
Sum = Sum + Count
Next Count
MsgBox Sum
End Sub
Sub BuclesAnidados
Dim MiMatriz(1 To 3, 1 To 3)
Asigna el valor 2 a
For i = 1 To 3
todos las casillas de una
For j = 1 to 3
matriz de 3 x 3
MiMatriz(i,j) = 2
Next j
Next i
End Sub
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
23
BUCLES DO...WHILE
Do While se ejecuta mientras se verifica una condicin especificada. Do
While puede tener cualquiera de estas dos sintaxis.
Do
Do [While condicion]
[instrucciones]
[Exit Do]
[instrucciones]
Loop
[instrucciones]
[Exit Do]
[instrucciones]
Loop [While condicion]
Sub DoWhileDemo()
Do While IsEmpty(ActiveCell)
ActiveCell.Value = 0
ActiveCell.Offset(1, 0).Select
Loop
End Sub
24
BUCLES DO...UNTIL
El bucle se ejecuta hasta que la condicin llegue a ser verdadera. Do Until
puede tener cualquiera de estas dos sintaxis.
Do Until condicion]
[instrucciones]
[Exit Do]
[instrucciones]
Loop
Do
[instrucciones]
[Exit Do]
[instrucciones]
Loop [Until condicion]
Sub DoUntilDemo()
Do
ActiveCell.Value = 0
ActiveCell.Offset(1, 0).Select
Loop Until Not IsEmpty(ActiveCell)
End Sub
Guido Trujillo Valdiviezo
Guido Trujillo Valdiviezo
25