Algunas Referencias y propiedades más usadas • Range(“D:G”).EntireColumn.ColumnWidth = 25 • Columns(“D:G”).ColumnWidth = 50 • Cells.EntireColumn.AutoFit • Cells.EntireRow.AutoFit • Selection.Address • ActiveCell.Address • Range("A1:D20").Columns.Count Nro Columnas en el rango • Range("A1:D20").Rows.Count Nro Filas en el rango • Range("A1:D20").Count Nro de elementos en el rango
ING. JOSE LI GAVIDIA MS EXCEL 3
Algunas Referencias y propiedades más usadas • Range("A1").CurrentRegion.Select • Range("A1").CurrentRegion.Address • Range("A2").EntireRow.Delete • Rows(2).EntireRow.Delete • Range(“D1").EntireColumn.Delete • Columns(4).EntireColumn.Delete • Range("A1:D1").Font.Name = "Arial" • Range("A1:D1").Font.Size = 10
ING. JOSE LI GAVIDIA MS EXCEL 4
Algunas Referencias y propiedades más usadas • Range(“C2").Interior.Color = VBA.vbRed • Range(“C3").Interior.Color = RGB(120, 130, 180) • Range(“C4").Interior.ColorIndex = 90 • Range("C5").NumberFormat = "#,##0.00“
ING. JOSE LI GAVIDIA MS EXCEL 5
Variables • Son espacios en la memoria que permiten almacenar datos temporalmente durante la ejecución de un programa. • Permiten almacenar diferentes tipos de datos y se pueden realizar diferentes cálculos con ellos. • Una variable puede tener un valor y cambiar durante la ejecución de un programa, por eso se denomina VARIABLE • Cuando una variable se define de un tipo (por ejemplo entero) no puede mezclarse con otros tipos de variable.
ING. JOSE LI GAVIDIA MS EXCEL 6
Definiendo Variables • Para definir una variable se usa el comando DIM Dim NombreVariable [As TipoVariable] • La reglas para nombrar una variable son las siguiente: • Deben empezar con una letra • Deben contener solo letras, números o el character de subrayado ( _ ), no se puede usar espacios en blanco. • Se recomienda que no debe ser muy largo. (long. Máxima 254) • No pueden ser palabras reservadas como por ejemplo SUB o DIM. • El parámetro TipoVariable es opcional, cuando no se indica VBA asume el tipo VARIANT. ING. JOSE LI GAVIDIA MS EXCEL 7 Option Explicit • Para evitar problemas con nombres de variable, se puede usar la OPTION EXPLICIT, de tal forma que VBA genere un error cuando encuentra una variable que no ha sido definida. • Para hacer esto, el comando tiene que colocarse en la sección de declaración de un modulo (general) • Si usa una variable o define una variable sin tipo, se generara un error. Los siguientes ejemplos generarian mensajes de error debido a que no tienen definido el tipo: Dim Salario x=0
ING. JOSE LI GAVIDIA MS EXCEL 8
Presione la tecla de función F5 para ejecutar la macro y observará que se genera el error por no estar definida la variable X.
ING. JOSE LI GAVIDIA MS EXCEL 9
Alcance y vida de variables • Si declara una variable dentro de un procedimiento, solo el código dentro de ese procedimiento puede accede a esa variable. • El alcance es local a ese procedimiento. • Quiza pueda necesitar variables que puedan ser leidas en varios procedimiento o en toda la aplicación. • Por estas razones puede declarar una variable en forma local, en un módulo o a nivel global (toda la aplicación).
ING. JOSE LI GAVIDIA MS EXCEL 10
Variables Locales • Se definen usando Dim, Static o Redim (para arreglos) • Ejemplo (Lo siguiente generaría error)
ING. JOSE LI GAVIDIA MS EXCEL 11
Variables globales para un módulo
ING. JOSE LI GAVIDIA MS EXCEL 12
Variables globales para la aplicación
ING. JOSE LI GAVIDIA MS EXCEL 13
Tipos de datos de variables • A una variable se le puede asignar un tipo de datos el cual determina el tipo de datos que se puede almacenar. Esto puede tener efecto en la eficiencia de su código. • Si no define el tipo de dato, el tipo por defecto es VARIANT. • El tipo variant puede almacenar todos los tipos de datos: texto, números, fechas, etc. • Una variable variant puede cambiar su tipo sin ningun problema en tiempo de ejecución del procedimiento.
ING. JOSE LI GAVIDIA MS EXCEL 14
Ejemplo Variant
La función VarType, retorna un número que indica
el tipo de dato de la variable
ING. JOSE LI GAVIDIA MS EXCEL 15
Otros tipos de datos(1) • Byte: Los valores de tipo Byte son los números enteros comprendidos entre 0 y 255. Estos datos se almacenan en memoria como un byte (8 bits). • Integer: Las variables definidas como Integer pueden almacenar números enteros en el rango de valores de -32768 a 32767. Los enteros se almacenan en memoria como 2 bytes. • Long: Las variables definidas como Long pueden almacenar números enteros comprendidos entre -2.147.483.648 y 2.147.483.647. Se almacenan en 4 bytes.
ING. JOSE LI GAVIDIA MS EXCEL 16
Otros tipos de datos(2) • Single (decimal simple): Las variables definidas como Single pueden almacenar números reales de 32 bits con una precisión de 7 decimales. Ocupa 8 bytes de memoria. • Double: Las variables definidas como Double pueden almacenar números reales de 64 bits con una precisión de 16 decimales que van de -1.79769313486231E308 a - 4,94065645841247E-324 para valores negativos y de 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos. Ocupa 16 bytes de memoria. • Currency: Las variables definidas como Currency pueden almacenar números reales que van de -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Este tipo nos permite manejar valores con una precisión de 15 dígitos a la izquierda del punto decimal y 4 dígitos a la derecha. Esta clase de datos la usamos para realizar cálculos de tipo monetario, donde necesitamos evitar errores de redondeo. Ocupa 8 bytes de memoria.
ING. JOSE LI GAVIDIA MS EXCEL 17
Otros tipos de datos(3) • Datos fecha/hora (Date): El tipo de dato Date lo empleamos para almacenar fechas y horas como un número real. Los valores de fecha u hora se deben incluir entre dos signos #. • Ver en el siguiente ejemplo: Ingreso = #27/12/14# Hora= #4:59:00 PM#
ING. JOSE LI GAVIDIA MS EXCEL 18
Otros tipos de datos(4) • Datos de texto (String): El tipo de dato String consiste en una secuencia de caracteres contiguos de cero o más caracteres correspondientes al código ASCII. Es decir, se trata de una cadena de caracteres que puede incluir letras, números, espacios y signos de puntuación. Los datos almacenados en una variable de tipo String serán tratados como texto y no como números. • De forma predetermina, en Visual Basic para Aplicaciones, las variables de tipo String son de longitud variable, es decir, la cadena crece y disminuye según le asignemos nuevos datos. Aunque también podemos declarar cadenas de longitud fija que nos permiten indicar un número específico de caracteres. Para declararlas, se utiliza el asterisco (*) seguido del número de caracteres. Por ejemplo, si queremos declarar la variable Apellidos con una longitud fija de 30 caracteres, usamos lo siguiente:: Dim Apellidos As String * 30
ING. JOSE LI GAVIDIA MS EXCEL 19
Otros tipos de datos(5) • Datos booleanos: Los datos Boolean son de tipo lógico; esto quiere decir que pueden tomar solo dos valores posibles: True (verdadero) y False (falso). El valor por defecto es False. Ocupan 2 bytes de memoria. • Datos Variant: Los datos Variant pueden contener prácticamente cualquier tipo de valor. Se utilizan para declarar una variable cuyo tipo no se especifica en forma explícita. Ejemplo: Dim Indeterminado AS Variant
ING. JOSE LI GAVIDIA MS EXCEL 20
Otros tipos de datos(6) • Datos de objeto (Object): Este tipo de variable permite almacenar referencias a objetos. De esta manera, podemos acceder a las propiedades de un objeto e invocar sus propiedades y métodos a través de la variable. Para declarar una variable Object cuando no conocemos el tipo de objeto, usamos la siguiente sentencia: Dim nombreVariable As Object
ING. JOSE LI GAVIDIA MS EXCEL 21
Otros tipos de datos(7) • Para declarar una variable Object cuando conocemos el tipo de objeto, usamos la sentencia: Dim NombreVariable As TipoDeObjeto • Donde Tipo_Objeto debe ser uno de los tipos de objetos de VBA, como por ejemplo, Range o Worksheet y no uno de los tipos de datos que hemos visto anteriormente.