Excel VBA

Excel con VBA EXCEL CON VBA Excel VBA (Visual Basic for Applications) Nombre del lenguaje de programación de Excel. Par

Views 232 Downloads 5 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Excel con VBA EXCEL CON VBA

Excel VBA (Visual Basic for Applications) Nombre del lenguaje de programación de Excel. Para trabajar con el editor de Visual Basic lo primero que tendrá que hacer es activar la Ficha Desarrollador (para versiones anteriores es Programador). Para activar la pestaña Desarrollador, ejecute los siguientes pasos: 2. Haga clic derecho en cualquier parte de la cinta, y luego haga clic en Personalizar la cinta de opciones.

1 2. En la parte derecha de la ventana de opciones, active la casilla Desarrollador, Aceptar.

Al aceptar y cerrar la ventana de opciones, en la cinta de opciones se mostrará al final de las fichas a esta nueva ficha Desarrollador.

Derechos Reservados para: AAA

Excel con VBA EDITOR DE VISUAL BASIC Para abrir el Editor de Visual Basic, en la ficha Desarrollador, haga clic en Visual Basic.

Descripción del Editor de Visual Basic

2

La ventana principal está formada además de la barra de menús (1) y la barra de herramientas estándar o barra de iconos (2), de un conjunto de ventanas con funciones diversas, cada una de ellas es configurable en cuanto tamaño, o incluso se pueden ocultar para ganar espacio para otras. Las principales son: Espacio de trabajo (3).- Es el lugar en el cual se van a mostrar las ventanas de proyectos según el tipo de trabajo que se va a ejecutar. Estas ventanas son: Ventana de Módulo o Código y Ventana de Formulario o Diseño. Explorador de proyectos (4).- Ventana superior izquierda, permite visualizar los objetos que contiene el proyecto actual agrupados por categorías. Además en la parte superior izquierda de esta ventana hay dos botones que nos permiten intercambiar a la vista de hoja de cálculo o a la ventana de código en la ventana del proyecto. Ventana de propiedades (5).- Situada debajo del explorador de proyectos, contiene el conjunto de propiedades, con el valor actual correspondiente, de cada uno de los objetos. Es aquí donde podremos modificar los valores iniciales de esas propiedades, en lo que se conoce como tiempo de diseño.

Derechos Reservados para: AAA

Excel con VBA Ventanas de Proyectos Ventana Código El código está compuesto por instrucciones que le da a la máquina. Esas instrucciones se ejecutan, pero no necesariamente resultan visibles al usuario durante la ejecución. En pocas palabras aquí es donde escribirá el código. Para ejecutar la ventana de código debe asegurarse de que esté ubicado en el módulo apropiado como puede ser una hoja de Excel, un objeto de control, o en un módulo. También para pasar a la ventana de código bastaría con hacer doble clic sobre cualquier control. Si se desea programar a la hoja de Excel, seleccione el nombre de la hoja en el explorador de proyectos y hacer un clic en el icono Ver Código

SI se desea crear una macro para que realice alguna acción, hacer un clic con el botón derecho en el titulo VBA Project, seleccione insertar y hacer un clic en Módulo o Módulo de Clase

Si desea programar a un control, hacer un doble clic en control seleccionado.

Derechos Reservados para: AAA

3

Excel con VBA Ventana Formularios Los forms (o formularios) son lo que también se llamarían una "ventana" o “cuadro de diálogo” que en realidad es una superficie que contiene controles, como por ejemplo un botón o una zona para escribir texto, y que se muestra visible en algún momento de la ejecución.

Al insertar la ventana de Formulario se agrega automáticamente el Cuadro de herramientas situado a la izquierda del formulario por defecto. Este cuadro contiene los controles que puede ir colocando en el formulario, para ello bastará con seleccionar el control a utilizar y hacer un clic en el área donde desee colocar, o hacer un arrastre y "dibujarlo" sobre el formulario hasta obtener el tamaño adecuado.

4

Mostrar/Ocultar cuadro de Herramientas Para mostrar el cuadro de herramientas cuando por algún motivo se haya cerrado, en la barra de iconos hacer un clic en el icono “Cuadro de Herramientas”. De igual manera si desea ocultar el cuadro, seleccione el mismo icono o presione sobre el botón cerrar del mismo cuadro de herramientas.

Derechos Reservados para: AAA

Excel con VBA MÓDULOS EN VBA Un módulo se utiliza para recopilar bajo un nombre un conjunto de declaraciones, instrucciones y/o procedimientos. Los módulos estándar de Excel, que son los más comunes y más fáciles de escribir, incluyen solo objetos predefinidos o "estándar". Todo código pesado resulta más conveniente escribirlo y almacenarlo en un modulo

Tipos de módulos En Excel existen dos tipos de módulos: El Módulo Estándar El Módulo de clase

Insertar módulos 1ra forma: Hacer un clic con el botón derecho en el nombre del proyecto (VBAProject (Libro1)) / insertar / módulo. Y se insertará una carpeta llamada Módulos, en ella el módulo1 2da forma: Hacer un clic en el menú Insertar / Módulo

Renombrar Seleccionar el módulo / presionar F4 o ir al menú Ver / Propiedades En el panel propiedades hacer un doble clic en la propiedad NAME, digitar el nuevo nombre. Nota: Los nombres a utilizar no deben tener espacios en blanco ni deben empezar con números ya que generaría un error.

Quitar 1ra Forma: A través de la ventana del explorador de proyectos, hacer un clic con el botón derecho en el módulo, luego hacer un clic en la opción Quitar 2da Forma: Seleccionar el módulo, ir al menú Archivo / Quitar. En ambos casos muestra un mensaje indicando si desea exportar para mantener el módulo o eliminarlo en definitiva. Elija la opción según sea necesario.

Derechos Reservados para: AAA

5

Excel con VBA PROCEDIMIENTOS Un procedimiento es básicamente una unidad de código informático que realiza alguna acción.

Tipos de Procedimientos en VBA Existen dos tipos de procedimientos: El Procedimiento Sub Consiste en un conjunto de sentencias que pueden ejecutarse de varias maneras

El Procedimiento Function Devuelve siempre un solo valor o devuelve una matriz. Se llama desde otro procedimiento, se puede usar como función de hoja de cálculo.

6 Ventana Inmediato Para revisar rápidamente puede ejecutar la ventana inmediato presionando las teclas CTRL + G Es muy útil ya que permite ejecutar directamente funciones e instrucciones además de probar y depurar el código. De otro lado si desea ejecutar una función debe colocar un signo de interrogación antes de la función Para ejecutar el procedimiento function, coloque primero el signo de interrogación y luego el nombre de la función y entre paréntesis los argumentos (valores para el cálculo), presione enter y en la siguiente línea mostrará el valor del resultado.

Derechos Reservados para: AAA

Excel con VBA CLASES Una Clase es un conjunto de códigos agrupados en un módulo. Cada objeto de Visual Basic está definido por una Clase. Una clase describe las variables, propiedades, procedimientos y eventos de un objeto. La clase se utiliza para crear los objetos. Los objetos creados a partir de una clase son por lo general idénticos ya que son copias de la clase por lo tanto una vez creados se pueden cambiar sus variables y propiedades independientemente de las demás instancias de esa clase. Para complementar los objetos resta decir que Excel manipula los objetos que se encuentran en su aplicación anfitriona, en este caso Excel es un objeto llamado aplicación y nos ofrece más de 100 objetos para manipular, entre los más conocidos se encuentran los libros, hojas, rango de hojas, gráficos o un rectángulo dibujado.

COLECCIONES Una colección es un grupo de objetos de la misma clase. Y una colección es por sí misma un objeto Ejemplo: Workbooks (es una colección de todos los objetos Workbook) Worksheets(es una colección de todos los objetos Worksheet) PivotTables (es una colección de los objetos PivotTable) Podemos trabajar con una colección de objetos o con los objetos individuales de una colección, lo único que se necesita es realizar una buena referencia, por ejemplo para hacer referencia a un único objeto colocamos el nombre o el número de índice entre paréntesis después del nombre de la colección, puede ser así: Worksheets(“hoja1”) o Worksheets(1)

Referencias Se puede hacer referencia a un miembro de la colección, por ejemplo a una Hoja de cálculo, de tres maneras. 1. Utilizar el nombre de la hoja. Worksheets("Hoja1").Range("A1").Value = "Hola" Hoja de trabajo ("Hoja1"). Rango ("A1"). Valor = "Hola" 2. Usando el número de índice ((1) es la primera hoja de cálculo a partir de la izquierda) Worksheets(1).Range("A1").Value = "Hola" Hoja de trabajo (1). Rango ("A1"). Valor = "Hola" 3. Usando el nombre en clave. Sheet1.Range("A1").Value = "Hola" Hoja1.Rango ("A1"). Valor = "Hola". Tener presente que para realizar una buena aplicación es necesario referenciar bien a los objetos, con frecuencia la manera más práctica de referenciar los objetos es utilizando el modelo correcto de Excel uniendo los objetos por jerarquía con un punto.

Derechos Reservados para: AAA

7

Excel con VBA OBJETOS Un objeto es una combinación de código y datos que pueden tratarse como una unidad. Un objeto puede ser una porción de una aplicación, como un control o un formulario Una aplicación entera también puede ser un objeto. En Excel VBA, un objeto puede contener otro objeto, y ese objeto puede contener otro objeto. En otras palabras, la programación de Excel VBA implica trabajar con una jerarquía de objetos. Esto probablemente suena bastante confuso, pero vamos a dejar en claro.

JERARQUÍA DE OBJETOS Los objetos en Excel están ordenados por jerarquías actuando unos objetos como contenedores de otros objetos, La madre de todos los objetos en sí es Excel al cual llamamos el objeto Application que contiene otros objetos como Workbooks, Windows, Addins, a su vez el objeto workbook contiene otros objetos como worksheets, charts, names, del mismo modo el objeto Worksheets contiene otros objetos como Chartobjects, range, pagesetup,pivottables, etc. Excel (Objeto Application) Workbooks (Archivos de Excel) Worksheets (Hojas de cálculo de un archivo) Range (Rango de celdas) Ejemplo: Inserte un botón control y digite el siguiente código: Range("A3").Value = "Me gusta" Veamos como lo interpreta Excel Application.Workbooks ("Libro1"). Worksheets(1). Range ("A3"). Value = "Me gusta" Un poco largo la línea del código, pero así es como lo interpreta. Si al principio se había agregado una línea algo corta se debe a que ya se tenía insertado el botón en el archivo Libro1, en la hoja1 y el código es para el botón. Pero si desea hacer mención a otro archivo u hoja, entonces tendrá que ingresar algo parecido a la línea de código más larga. Para ver el nombre en clave de una hoja de trabajo, visualice en el Explorador de proyectos, el primer nombre es el nombre en clave. El segundo nombre es el nombre de la hoja (Febrero). Nota: el nombre en clave sigue siendo el mismo si se cambia el nombre de la hoja o el orden de las hojas de trabajo por lo que esta es la forma más segura de hacer referencia a una hoja de cálculo. Ahora, hay una desventaja, no puede utilizar el nombre en clave si hace referencia a una hoja de cálculo en un libro diferente.

Derechos Reservados para: AAA

8

Excel con VBA PROPIEDADES Una propiedad de un objeto puede definirse como un valor que toma un atributo del objeto en un tiempo determinado. Las propiedades son algo que describe la colección En otras palabras es información almacenada en un objeto. Ejemplo: Un objeto Range tiene las siguientes propiedades: Value (valor), Select (Seleccionar), Copy (Copiar), Clear (borrar o limpiar) Hacemos referencia al objeto combinándolo con una propiedad separada por un punto

2. La propiedad Count de las Hojas de trabajo cuenta el número de hojas de un libro. MsgBox Worksheets.Count Resultado cuando hace clic en el botón de comando en la hoja:

9

METODOS Puede definirse como una acción que se realiza con un objeto particular. Por ejemplo: un portón de garaje de un establecimiento, inicialmente el portón se encuentra cerrado y conforme llegan los autos, estos oprimen un botón para abrir el garaje Ejemplos: 1. El método Add de la colección Libros de trabajo crea un nuevo libro. Workbooks.Add En cambio si utiliza el método Add de la colección Hojas de trabajo crea una nueva hoja de cálculo. Worksheets.Add

Derechos Reservados para: AAA

Excel con VBA MACROS Las Macros en Excel son un conjuntos de instrucciones que se ejecutan de manera secuencial por medio de una orden de ejecución, claro está que una Macro puede invocar a otras Macros, logrando de esta forma obtener operaciones cada vez más complejas. BOTÓN DE COMANDO Para colocar un botón de comando en la hoja de trabajo, ejecute los siguientes pasos. 1. En la ficha Desarrollador, hacer un clic en Insertar, en el grupo Controles ActiveX, seleccione el botón de comando. Dibuje un botón en la hoja de cálculo. 2. En la ficha Desarrollador, hacer un clic en Propiedades, en la propiedad Caption digite el nombre que deberá mostrar en el botón

10 ASIGNAR UNA MACRO Para asignar una macro (una o más líneas de código) para el botón de comando, ejecute los siguientes pasos. 1. Hacer un doble clic en el botón de Comando, Aparece el Editor de Visual Basic. 2. Coloque el cursor entre Private Sub CommandButton1_Click () y End Sub. 3. Agregue la línea de código como se muestra a continuación.

4. Cierre el Editor de Visual Basic. Haga clic en el botón de comando en la hoja (asegúrese de que el modo de diseño no está seleccionada).

Derechos Reservados para: AAA

Excel con VBA MSGBOX El MsgBox es un cuadro de diálogo en Excel VBA que puede utilizar para informar a los usuarios sobre los cambios que se estén efectuando en el proyecto.

Mensaje Simple Inserte el botón de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite un mensaje simple. MsgBox ("Qué fácil es VBA")

Mensaje de un valor ingresado en una celda En primer lugar, introduzca un número en la celda A1. Inserte el botón de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite un mensaje siguiente. MsgBox ("El valor ingresado en la celda es ") & Range ("A1"). Value

11

Mensaje en Líneas Para iniciar una nueva línea en un mensaje, utilice vbNewLine. Inserte el botón de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite un mensaje siguiente. MsgBox ("Excel Básico" & vbNewLine & "Excel Intermedio")

Derechos Reservados para: AAA

Excel con VBA INPUTBOX La función Inputbox presenta un mensaje al usuario, permitiéndole ingresar un valor en una caja de texto. Los parámetros principales de esta función son: Inputbox (Promt, Title, Default) - El parámetro Prompt especifica la leyenda que mostrará la caja de mensajes. - El parámetro Title especifica el título que llevará el cuadro de diálogo. - El parámetro Default es el texto que mostrará la caja de texto. Es una función que muestra una ventana en la cual el usuario puede digitar información y almacenar en una celda de la hoja activa Insertar un botón de comando, hacer un doble clic para ir al editor de Visual Basic, digite lo siguiente:

12

Cuando desea poner en dos líneas utilice el ampersand, luego digite chr(13), esto es como si presionaras enter, digitas el segundo texto entre comillas, luego digitas el título que debe tener la ventana

Derechos Reservados para: AAA

Excel con VBA ERRORES DE MACROS En este caso veamos cómo hacer frente a los errores de macros en Excel. En primer lugar, vamos a crear algunos errores. Coloque un botón de comando en la hoja de trabajo y agregue las siguientes líneas de código: x=2 Range("A1").Valu = x

Esta ventana se muestra porque no reconoce a “x” (variable no declarada) y/o a “Valu” (propiedad mal digitada) Si usamos la instrucción Option Explicit en el inicio del código y no se ha declarado una variable, entonces la ventana de error se muestra así.

La variable x no está definido. Excel VBA ha coloreado la x azul para indicar el error.

Derechos Reservados para: AAA

13

Excel con VBA Corregir Errores En el Editor de Visual Basic, haga clic en Restablecer para detener el depurador

O digite la línea de código al principio seguido de Private Sub… Dim x As Integer

Para verificar o comprobar que no haya más errores presione el botón Continuar. En este procedimiento debe limpiar la franja pintada de color amarillo.

Si cierra la ventana sin haber limpiado la franja amarilla, entonces le mostrará la siguiente ventana indicando que la acción realizada va a detener la depuración.

Derechos Reservados para: AAA

14

Excel con VBA Depurar Líneas de Código Es posible que haya oído hablar de la técnica llamada depuración antes de ejecutar. Con esta técnica se puede recorrer el código. Los procedimientos a seguir son: En el Editor de Visual Basic, coloque el cursor antes de la línea de código Private Sub …

Presione la tecla F8 y la primera línea se pinta de color amarillo.

Presione F8 varias veces para pasar de línea en línea.

15

Cuando la línea tiene algún error muestra la ventana siguiente de error

El objeto Range tiene una propiedad llamada Value. El valor no está bien escrita aquí. La depuración es una gran manera de no sólo encontrar errores, sino también entender el código mejor.

Derechos Reservados para: AAA

Excel con VBA RANGO DE OBJETOS El objeto Range, que es la representación de una celda (o celdas) en la hoja de cálculo, es el objeto más importante de Excel VBA. Con los ejemplos se tiene una visión general de las propiedades y métodos del objeto Range. Las propiedades son algo que un objeto tiene (Los que describen el objeto); mientras que, Los métodos son los que permiten hacer algo (Los que llevan a cabo una acción con el objeto). EJEMPLO DE RANGOS.- Coloque un botón de comando en la hoja de trabajo y agregue la siguiente línea de código:

Range("B3").Value = 2

Range("A1:A4").Value = 5

Range("A1:A2,B3:C4").Value =10

DECLARE UN OBJETO COMO RANGO.- Declare un objeto como Range usando las palabras clave Dim (Declarar) y Set (Establecer) Dim ejemplo As Range Set ejemplo = Range("A1:C4") ejemplo.Value = 8

Declarar ejemplo como Rango Establecer ejemplo al Rango ("A1: C4") El valor del rango ejemplo es igual a 8

SELECCIONAR.- Un método importante para el objeto Range es el método Select. El método Select simplemente selecciona un rango. Dim ejemplo As Range Set ejemplo = Range("A1:C4") ejemplo.Select

Derechos Reservados para: AAA

Declarar ejemplo como Rango Establecer ejemplo al Rango ("A1: C4") Seleccione el rango ejemplo

16

Excel con VBA CELDAS En vez de Rangos, también puede utilizar las celdas. El uso de celdas es particularmente útil cuando se quiere recorrer rangos. Cells(3, 2).Value = 2 (introduce el valor 2 en la intersección de la fila 3 y la columna 2)  Celda B3

Range(Cells(1, 1), Cells(4, 1)) = 5

FILAS La propiedad Rows da acceso a una fila específica de un rango. Dim ejemplo As Range Set ejemplo = Range("A1:C4") ejemplo.Rows(3).Select

COLUMNAS La propiedad Columns da acceso a una columna específica de un rango. Dim ejemplo As Range Set ejemplo = Range("A1:C4") ejemplo.Columns(2).Select

Derechos Reservados para: AAA

17

Excel con VBA COPIAR/PEGAR Los métodos Copy y Paste se utilizan para copiar un rango y pegarlo en otro lugar de la hoja de trabajo. Range("A1:A2").Select Selection.Copy Range("C3").Select ActiveSheet.Paste

También puede utilizar el código en una sola línea el cual hace exactamente lo mismo que el anterior Range("C3:C4").Value = Range("A1:A2").Value

LIMPIAR Para borrar el contenido de un rango de Excel, puede utilizar el método ClearContents. Range(“A1”).Clearcontents o simplemente utilizar: Range("A1").Value = ""

18

Para borrar el contenido y formato utilice el método Clear Range("A1").Clear

Para borrar solo el formato utilice el método ClearFormats Range("A1").ClearFormats

Derechos Reservados para: AAA

Excel con VBA CONTAR Con la propiedad Count, puede contar el número de celdas, filas y columnas de un rango.

Contar Celdas Dim ejemplo As Range Set ejemplo = Range("A1:E5") MsgBox ejemplo.Count

Contar Filas Dim ejemplo As Range Set ejemplo = Range("A1:E5") MsgBox ejemplo.Rows.Count

19

Contar Columnas Dim ejemplo As Range Set ejemplo=Range(“A1:H5”) MsgBox ejemplo.Columns.Count

Derechos Reservados para: AAA

Excel con VBA VARIABLES Una variable es un nombre que hace las funciones de contenedor polivalente que puede albergar distintos valores o datos los cuales dependerá de la clase de dato que desea guardar dentro de ellas Hay que tener en cuenta que Excel interpreta de forma inteligente el tipo de variable a la que nos estamos refiriendo. Es decir, la variable se refiere a valores numéricos, pero en otros casos pueden ser textos, fechas, etc. Ese "reconocimiento inteligente" que hace Excel del tipo de variable, requiere la utilización de más memoria en el equipo (debido a que asigna por defecto un tipo de variable-comodín llamado "variant") y por lo tanto es conveniente facilitarle las cosas indicando en lo que se llama una "declaración de variable". Si no se declara la variable tomará como tipo de dato Variant (tipo de variable que almacena todo tipo de información). El tipo variant ocupa 20 bytes. Cosa que no es recomendable De ahí se recomienda que la variable sea declarada. Y es más fácil de hacer modificaciones

Declarar Variables a valores ¿Por qué declarar variables? Básicamente es para tener más ordenado la codificación. Si declara las variables: •Ocuparán menos espacio en memoria. •Nuestra macro será difícil de interpretar para otros usuarios que puedan necesitar leer el código VBA (incluso para nosotros mismos). Tener al principio de la macro una lista con las variables declaradas resulta muy útil y aclarador. •Podría utilizar esa variable posteriormente en varias macros.

Sentencia OPTIONEXPLICIT Ésta obliga a declarar las variables que no haya declarado dando la alerta de la variable no declarada. Hay dos formas para utilizar la declaración de variables obligatorias y son: Variable Local Consiste en digitar “Option Explicit” al principio de la línea de código generando una línea de división entre el procedimiento sub o function.

Variable Predeterminada El cual se mostrará a partir de un nuevo módulo insertado. Para predeterminar la variable seleccione el Menú herramientas en el Editor de Visual Basic, hacer un clic en Opciones, en la pestaña Editor activar la casilla “requerir declaración de variable”

Derechos Reservados para: AAA

20

Excel con VBA Declarar variables a objetos Declarar variables de objeto está permite el ahorro en tiempo de escritura de código, en tiempo de ejecución del mismo, así como la organización y orden conseguidos en la estructura del procedimiento o macro. Para declarar variables a objetos primero declara la variable, luego asigne a un tipo de objeto, pero en este caso (a diferencia de las variables asignadas a valores) debe comenzar la línea con la palabra Set, como por ejemplo:

También es útil para hacer un recorrido hasta encontrar el que cumpla con la condición especificada.

Reglas Las variables a declarar deben seguir ciertas reglas determinadas: ◾La denominación de la variable debe empezar con una letra y no con un número. ◾No debe de tener más de 250 caracteres. ◾No puede emplearse las palabras reservadas para la sintaxis de la propia Excel. Por ejemplo no puede llamar a una variable con el nombre de WorkSheet etc. ◾Debe consistir en una cadena continua de caracteres. Por ejemplo no puede emplear como nombre “mi variable” pero sí “mi_variable”.

TIPOS DE VARIABLES Existen 12 tipos de datos diferentes con los que se puede trabajar. Por ejemplo al declarar una variable en VBA basta añadir una línea de código para definir la naturaleza de los valores que almacenaremos en ella. Estos son:

Integer (Entero) La variable Integer se utiliza para almacenar números enteros. Dim x As Integer Declarar x como valor entero x=6 “X” es igual a 6 Range ("A1").Value = x El contenido de la celda A1 es igual al valor de 6

Double (Doble) Una variable de tipo Double es más precisa que una variable de tipo entero y también puede almacenar números decimales. Dim x As Integer declarar x como entero x = 5.5 x es igual a 5.5 MsgBox "el valor es " & x mensaje: “El valor es 6” Dim x As Double entero o decimal x = 5.5 MsgBox "el valor es " & x

declarar x como número x es igual a 5.5 mensaje: “el valor es 5.5”

Derechos Reservados para: AAA

21

Excel con VBA String (Texto) (cadena) La variable String se utiliza para almacenar texto. Dim book As String Declarar book como texto book = "Excel" book es igual a Excel Range("A1").Value = book El contenido de la celda A1 es igual a book

Currency (Moneda) El tipo de dato Moneda es en realidad un tipo entero internamente pero que como resultado muestra con el símbolo monetario y dos decimales. Dim celdita As Currency celdita = 24 Range("A3").Value = celdita

Boolean (Lógica) Una variable de tipo lógico es aquella que puede almacenar solamente dos valores: Falso o Verdadero. Dim continue As Boolean continue = True If continue = True Then MsgBox "Es Verdadero"

22 Otros Byte: corresponde a una variable de 8 bits que puede almacenar valores de 0 a 255. Es muy útil para el almacenamiento de datos binarios. Long: es un número de 32 bits que puede variar entre -2.147.483.648 y 2.147.483.647. Las variables Long sólo pueden contener valores enteros. Decimal: El Decimal es un subtipo de dato Variant, puede almacenar valores en un rango que va desde -79.228.162.514.264.337.593.543.950.335 hasta 79.228.162.514.264.337.593.543.950.335 si el valor no contiene cifras decimales. Tiene una precisión de hasta 28 decimales con valores desde -7,9228162514264337593543950335 hasta 7,9228162514264337593543950335. Single: Es un número de 32 bits que va desde -3.402823E38 a -1,401298 E-45 para valores negativos y desde 1,401298E-45 a 3.402823E38 para valores positivos. Cuando se necesitan números fraccionarios dentro de este rango, este es el tipo de apropiado para su uso. Object: Se utiliza Object cuando en el tiempo de compilación no se conoce a qué tipo de datos puede señalar la variable. Independientemente del tipo de datos al que haga referencia, una variable Object no contiene el valor en sí, sino un puntero al valor. Debido al código que el puntero utiliza para buscar los datos, las variables Object son de acceso un poco más lento que las variables que tienen un tipo explícito. Variant: Los Variant almacenan valores numéricos y no numéricos. Son los más flexible de todos los tipos disponibles, ya que almacena valores muy grandes de casi cualquier tipo (coincide con el tipo de dato numérico doble). Se usa sólo cuando no se está seguro del tipo o cuando se están acomodando datos externos y no se está seguro de las especificaciones del tipo de datos.

Derechos Reservados para: AAA

Excel con VBA Date (Fecha) El tipo Date almacena un valor numérico con formato especial que representa tanto la fecha como la hora Dim celdita As Date celdita = Date Range("A3").Value = celdita

Obtener el Año, Mes, Día de una Fecha Year, Month, Day Dim mostrar_año As Date mostrar_año = DateValue("01/01/2014") MsgBox Year(mostrar_año) Nota: Usar Mes y día para obtener el mes y día de una fecha. Agregar número de Días a una Fecha DateAdd Para agregar un número de días a una fecha, utilice la función DateAdd. La función DateAdd tiene tres argumentos. Primer argumento: Digite "d" para agregar los días. Segundo argumento: Digite 15 para agregar el número de días. Tercer argumento: Representa la fecha a la que se agregará el número de días. Dim fecha1 As Date, fecha2 As Date fecha1 = DateValue("01/01/2014") fecha2 = DateAdd("d", 15, fecha1) MsgBox fecha2 Otros valores a utilizar son: y (año), m (mes), d (día), q (trimestre), e (día de la semana), WW (semana), h (hora), m( minuto), s (segundo)

Fecha y Hora Actual Para obtener la fecha y la hora actual, utilice la función ahora. MsgBox Now

Derechos Reservados para: AAA

23

Excel con VBA Obtener Hora, Minuto, Segundo Hour, Minute, Second Para obtener la hora de un tiempo, utilice la función Hora. MsgBox Hour(Now)

Convertir en un Número de Serie TimeValue La función TimeValue convierte una cadena en un número de serie de tiempo. Número de serie del tiempo es un número entre 0 y 1. Por ejm: al mediodía (la mitad del día) se representa como 0,5. MsgBox TimeValue("11:05:00 am")

24

Ahora, para ver claramente que Excel maneja las fechas internamente como números entre 0 y 1, añada las siguientes líneas de código:. Dim y As Double y = TimeValue("11:05:00") MsgBox y

Derechos Reservados para: AAA

Excel con VBA CADENAS DE TEXTO A continuación se describen las más importantes funciones para manipular cadenas en Excel VBA. Coloque un botón de comando en la hoja de trabajo y agregue las líneas de código de abajo. Para ejecutar las líneas de código, haga clic en el botón de comando en la hoja.

Concatenar (Unión de datos) Utilizamos el operador & para concatenar (unir) los textos. Dim text1 As String, text2 As String text1 = "Adriana" text2 = "Allisson" MsgBox text1 & " " & text2 Nota: para insertar un espacio, utilice ""

Izquierda Para extraer los caracteres más a la izquierda de una cadena, utilice Izquierda. Dim text As String text = "Elias" MsgBox Left(text, 2)

25 Con el valor de una celda MsgBox Left(Range(“A1”).Value,4)

Derecha Para extraer los caracteres situados a la derecha de una cadena, utilice la función derecha. También puede insertar texto directamente en una función. MsgBox Right("Aracely", 2)

Medio (Extraer) Para extraer una subcadena, empezando en una determinada posición de una cadena, utilice la función Mid. MsgBox Mid("Alessandra", 3, 2)

Derechos Reservados para: AAA

Excel con VBA

Si desea extraer una subcadena que empieza en una posición especifica de una cadena, hasta el final de la cadena obvie el tercer argumento.

Len (Largo) Para obtener la longitud de una cadena, utilice Len. MsgBox Len("Excel con Visual Basic")

Instr (Hallar) Para encontrar la posición de una subcadena en una cadena, utilice Instr. MsgBox Instr("example text", "m")

Replace (Reemplazar) Para reemplazar un carácter en una cadena, utilice la función Replace MsgBox Replace(“Eternamente”,”amente”,”o”)

Derechos Reservados para: AAA

26