03 MacrosVBAExcelAvanzado EAA de 11
-
Upload
hermis-ramos-espinal -
Category
Documents
-
view
217 -
download
0
Transcript of 03 MacrosVBAExcelAvanzado EAA de 11
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
1/18
Excel Avanzado con VBA 03Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
2/18
VARIABLES, CONSTANTES,EXPRESIONES Y TIPOS DEDATOS
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
3/18
Variables y tipos de datos
El propsito principal de VBA es manipular datos. Tambin sepueden 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 caracteresdebe 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.
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
4/18
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
5/18
AMBITO de las variablesEl mbito de una variable determina el mdulo y elprocedimiento en el que se puede usar una variable.
17/02/2013Ing. Enrique Alfaro
mbito Cmo se declara una variable en este mbitoUn procedimiento Incluye instrucciones Dim, Static o Private dentro del
procedimiento.Al nivel de mdulo Incluye una instruccin Dim antes del primer
procedimiento de un mdulo.Todos los mdulos Incluye una instruccin Public antes del primer
procedimiento de un mdulo
VARIABLES LOCALESUna variable local es una variable declarada dentro deun procedimiento. Estas variables se pueden usar sloen el procedimiento en que se declararon. Cuando elprocedimiento finaliza, la variable deja de existir.
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
6/18
VARIABLES LOCALESComunmente, una variable local, se declara dentro de unainstruccin DIM. Ejemplos:
Sub MiSub()DIM x As IntegerDIM Primero As LongDIM edad As ByteDIM TasaInteres As SingleDIM FechadeHoy As DateDIM 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 SingleO: DIM x, y, z As Integer
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
7/18
VARIABLES A NIVEL DE MDULOPara que una variable est disponible para todos losprocedimientos de un mdulo, se declara la variableantes del primer procedimiento del mdulo (fuera decualquier procedimiento o funcin). Ejemplo:
DIM fecha As DateSub Dias()
'Aqu va el cdigo End SubSub Meses() 'Aqu va el cdigo
End Sub
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
8/18
Variables PUBLICPara que una variable est disponible para todos losprocedimientos de un proyecto de VBA, se declara la
variable a nivel de mdulo usando la palabra publicEjemplo:
Public TasaAnual as Long
17/02/2013Ing. Enrique Alfaro
lf
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
9/18
Trabajar con CADENASExisten dos tipos de cadenas en VBA:Cadenas de longitud fija, que se declaran con un
nmero especfico de caracteres. La mxima longitudes de 65.536 caracteres.
Cadenas de longitud variable, que tericamentepueden tener hasta 2.000 milones de caracteres.
Dim MiCadena As String * 50Dim SuCadena As String
17/02/2013Ing. Enrique Alfaro
17/02/2013I E i Alf
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
10/18
Trabajar con FECHASDim Hoy As DateDim HoraInicio As DateConst PrimerDa As Date = #1/1/2001#
Const MedioDa As date = #12:00:00 PM#
Const es una palabra reservada paradeclarar constantes.
17/02/2013Ing. Enrique Alfaro
17/02/2013I E i Alf
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
11/18
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=1x=x+1
x = (y * 2) / (z * 2)archivoabierto = trueRange (Ao). Value = 2010
17/02/2013Ing. Enrique Alfaro
17/02/2013Ing Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
12/18
OPERADORESOPERADORES ARITMTICOS + Suma, - Resta, * Multiplicacin, / Divisin, \ Divisin
entera, Mod Resto, ^ exponencial, & Concatenacin
OPERADORES COMPARATIVOS = Igual, < Menor, > Mayor, =
Mayor o igual, Distinto
OPERADORES LGICOS Not (negacin lgica), And (conjuncin lgica),Or (disyuncin lgica)
17/02/2013Ing. Enrique Alfaro
17/02/2013Ing Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
13/18
MATRICESUna matriz es un grupo de elementos del mismo tipoque tienen un nombre comn. Para referirse a unelemento especfico de una matriz se usa el nombrede la matriz y un nmero de ndice. Se declara con DIMo 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 IntegerMiMatriz(1,2) = 20
17/02/2013Ing. Enrique Alfaro
17/02/2013Ing Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
14/18
VARIABLES DE OBJETO Una variable de objeto es una variable que representa unobjeto 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 = TrueWorksheets (Hoja1). Range (A1).Font. Italic = TrueEnd Sub
17/02/2013Ing. Enrique Alfaro
17/02/2013Ing Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
15/18
VARIABLES DE OBJETO La rutina anterior introduce un valor en la celda A1de la HOJA1, del libro de trabajo activo, y despus
aplica Negrita y cursiva a su contenido. Para reducirel 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 = 124MiCelda.Font.Bold = TrueMiCelda.Font. Italic = True
End Sub
17/02/2013Ing. Enrique Alfaro
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
16/18
TIPOS DE DATOS DEFINIDOS POR EL USUA VBA permite crear tipos de datos personalizados definidos por elusuario.
Type InfoClientesEmpresa As String * 25Ventas As Long
End TypeSub datos()Dim clientes(0 To 100) As InfoClientes
clientes(0).Empresa = "camposol"clientes(0).Ventas = 50000Range("a1").Value = clientes(0).EmpresaRange("a2").Value = clientes(0).Ventas
End Sub
17/02/2013Ing. Enrique Alfaro
Los tipos de datos persona-lizados se definen fuera delos procedimientos, en laparte superior del mdulo
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
17/18
FUNCIONES INTEGRADAS Las funciones integradas de VBA no son las mismaque las de Excel. La funcin UCASE de VBA, que
convierte una cadena a maysculas es equivalente a lafuncin MAYUSC de Excel.
Ejemplo:
Sub MostrarRaiz()MiValor = 25RaizCuadrada = VBA.Sqr(MiValor)MsgBox RaizCuadrada
End Sub
17/02/2013Ing. Enrique Alfaro
Para obtener la lista defunciones de VBA, se teclea enel cdigo: VBA seguido de unpunto. El Editor de VBdespliega una lista con todas las
funciones.
17/02/2013Ing. Enrique Alfaro
-
7/29/2019 03 MacrosVBAExcelAvanzado EAA de 11
18/18
FUNCIONES INTEGRADASEl objeto WorsheetFunction, que est contenido en elobjeto Application, contiene todas las funciones dehoja de clculo que se pueden llamar desde losprocedimientos VBA. Veamos un ejemplo paraconvertir un nmero decimal en nmero romano.
Sub MostrarRomano()ao = 2011enromano=Application.WorksheetFunction.Roman(ao)Range (C1). value= enromano
End Sub
g q