Sei sulla pagina 1di 26

Excel con VBA

1
Derechos Reservados para: AAA
EXCEL CON VBA


Excel VBA
(Visual Basic for Applications)
Nombre del lenguaje de programacin 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 pestaa 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.

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.

Excel con VBA

2
Derechos Reservados para: AAA
EDITOR DE VISUAL BASIC
Para abrir el Editor de Visual Basic, en la ficha Desarrollador, haga clic en Visual Basic.


Descripcin del Editor de Visual Basic

La ventana principal est formada adems de la barra de mens (1) y la barra de herramientas
estndar o barra de iconos (2), de un conjunto de ventanas con funciones diversas, cada una de
ellas es configurable en cuanto tamao, 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 segn
el tipo de trabajo que se va a ejecutar. Estas ventanas son: Ventana de Mdulo o Cdigo y Ventana
de Formulario o Diseo.
Explorador de proyectos (4).- Ventana superior izquierda, permite visualizar los objetos que
contiene el proyecto actual agrupados por categoras. Adems en la parte superior izquierda de
esta ventana hay dos botones que nos permiten intercambiar a la vista de hoja de clculo o a la
ventana de cdigo 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
diseo.
Excel con VBA

3
Derechos Reservados para: AAA
Ventanas de Proyectos
Ventana Cdigo
El cdigo est compuesto por instrucciones que le da a la mquina. Esas instrucciones se ejecutan,
pero no necesariamente resultan visibles al usuario durante la ejecucin. En pocas palabras aqu
es donde escribir el cdigo.
Para ejecutar la ventana de cdigo debe asegurarse de que est ubicado en el mdulo apropiado
como puede ser una hoja de Excel, un objeto de control, o en un mdulo. Tambin para pasar a la
ventana de cdigo bastara 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 Cdigo

SI se desea crear una macro para que realice alguna accin, hacer un clic con el botn derecho en
el titulo VBA Project, seleccione insertar y hacer un clic en Mdulo o Mdulo de Clase

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

Excel con VBA

4
Derechos Reservados para: AAA
Ventana Formularios
Los forms (o formularios) son lo que tambin se llamaran una "ventana" o cuadro de dilogo que
en realidad es una superficie que contiene controles, como por ejemplo un botn o una zona para
escribir texto, y que se muestra visible en algn momento de la ejecucin.

Al insertar la ventana de Formulario se agrega automticamente 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 tamao adecuado.


Mostrar/Ocultar cuadro de Herramientas
Para mostrar el cuadro de herramientas cuando por algn 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 botn cerrar del mismo cuadro de
herramientas.


Excel con VBA

5
Derechos Reservados para: AAA
MDULOS EN VBA
Un mdulo se utiliza para recopilar bajo un nombre un conjunto de declaraciones, instrucciones y/o
procedimientos.
Los mdulos estndar de Excel, que son los ms comunes y ms fciles de escribir, incluyen solo
objetos predefinidos o "estndar".
Todo cdigo pesado resulta ms conveniente escribirlo y almacenarlo en un modulo
Tipos de mdulos
En Excel existen dos tipos de mdulos:
El Mdulo Estndar
El Mdulo de clase

Insertar mdulos
1ra forma: Hacer un clic con el
botn derecho en el nombre del
proyecto (VBAProject (Libro1)) /
insertar / mdulo. Y se insertar
una carpeta llamada Mdulos, en
ella el mdulo1
2da forma: Hacer un clic en el
men Insertar / Mdulo


Renombrar
Seleccionar el mdulo / 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 nmeros ya
que generara un error.

Quitar
1ra Forma: A travs de la ventana del explorador de
proyectos, hacer un clic con el botn derecho en el
mdulo, luego hacer un clic en la opcin Quitar
2da Forma: Seleccionar el mdulo, ir al men
Archivo / Quitar.
En ambos casos muestra un mensaje indicando si
desea exportar para mantener el mdulo o
eliminarlo en definitiva. Elija la opcin segn sea
necesario.

Excel con VBA

6
Derechos Reservados para: AAA
PROCEDIMIENTOS
Un procedimiento es bsicamente una unidad de cdigo informtico que realiza alguna accin.
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 funcin de hoja de clculo.


Ventana Inmediato
Para revisar rpidamente puede ejecutar la ventana inmediato presionando las teclas CTRL + G
Es muy til ya que permite ejecutar directamente funciones e instrucciones adems de probar y
depurar el cdigo.
De otro lado si desea ejecutar una funcin debe colocar un signo de interrogacin antes de la funcin
Para ejecutar el procedimiento function, coloque primero el signo de interrogacin y luego el nombre
de la funcin y entre parntesis los argumentos (valores para el clculo), presione enter y en la
siguiente lnea mostrar el valor del resultado.




Excel con VBA

7
Derechos Reservados para: AAA
CLASES
Una Clase es un conjunto de cdigos agrupados en un mdulo.
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
idnticos ya que son copias de la clase por lo tanto una vez creados se pueden cambiar sus
variables y propiedades independientemente de las dems instancias de esa clase.
Para complementar los objetos resta decir que Excel manipula los objetos que se encuentran en su
aplicacin anfitriona, en este caso Excel es un objeto llamado aplicacin y nos of rece ms de 100
objetos para manipular, entre los ms conocidos se encuentran los libros, hojas, rango de hojas,
grficos o un rectngulo dibujado.

COLECCIONES
Una coleccin es un grupo de objetos de la misma clase. Y una coleccin es por s misma un objeto
Ejemplo:
Workbooks (es una coleccin de todos los objetos Workbook)
Worksheets(es una coleccin de todos los objetos Worksheet)
PivotTables (es una coleccin de los objetos PivotTable)
Podemos trabajar con una coleccin de objetos o con los objetos individuales de una coleccin, lo
nico que se necesita es realizar una buena referencia, por ejemplo para hacer referencia a un
nico objeto colocamos el nombre o el nmero de ndice entre parntesis despus del nombre de
la coleccin, puede ser as:
Worksheets(hoja1) o Worksheets(1)
Referencias
Se puede hacer referencia a un miembro de la coleccin, por ejemplo a una Hoja de clculo, 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 nmero de ndice ((1) es la primera hoja de clculo 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 aplicacin es necesario referenciar bien a los objetos,
con frecuencia la manera ms prctica de referenciar los objetos es utilizando el modelo correcto
de Excel uniendo los objetos por jerarqua con un punto.

Excel con VBA

8
Derechos Reservados para: AAA
OBJETOS
Un objeto es una combinacin de cdigo y datos que pueden tratarse como una unidad.
Un objeto puede ser una porcin de una aplicacin, como un control o un formulario
Una aplicacin entera tambin puede ser un objeto.
En Excel VBA, un objeto puede contener otro objeto, y ese objeto puede contener otro objeto. En
otras palabras, la programacin de Excel VBA implica trabajar con una jerarqua de objetos. Esto
probablemente suena bastante confuso, pero vamos a dejar en claro.
JERARQUA DE OBJETOS
Los objetos en Excel estn ordenados por jerarquas 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 clculo de un archivo)
Range (Rango de celdas)

Ejemplo:
Inserte un botn control y digite el siguiente cdigo:
Range("A3").Value = "Me gusta"

Veamos como lo interpreta Excel
Application.Workbooks ("Libro1"). Worksheets(1). Range ("A3"). Value = "Me gusta"
Un poco largo la lnea del cdigo, pero as es como lo interpreta.
Si al principio se haba agregado una lnea algo corta se debe a que ya se tena insertado el botn
en el archivo Libro1, en la hoja1 y el cdigo es para el botn.
Pero si desea hacer mencin a otro archivo u hoja, entonces tendr que ingresar algo parecido a la
lnea de cdigo ms 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 ms segura de hacer
referencia a una hoja de clculo.

Ahora, hay una desventaja, no puede utilizar el nombre en clave si hace referencia a una hoja de
clculo en un libro diferente.
Excel con VBA

9
Derechos Reservados para: AAA
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 coleccin
En otras palabras es informacin 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 combinndolo con una propiedad separada por un punto

2. La propiedad Count de las Hojas de trabajo cuenta el nmero de hojas de un libro.
MsgBox Worksheets.Count
Resultado cuando hace clic en el botn de comando en la hoja:


METODOS
Puede definirse como una accin que se realiza con un objeto particular.
Por ejemplo: un portn de garaje de un establecimiento, inicialmente el portn se encuentra cerrado
y conforme llegan los autos, estos oprimen un botn para abrir el garaje
Ejemplos:
1. El mtodo Add de la coleccin Libros de trabajo crea un nuevo libro.
Workbooks.Add

En cambio si utiliza el mtodo Add de la coleccin Hojas de trabajo crea una nueva hoja de clculo.
Worksheets.Add

Excel con VBA

10
Derechos Reservados para: AAA
MACROS
Las Macros en Excel son un conjuntos de instrucciones que se ejecutan de manera secuencial por
medio de una orden de ejecucin, claro est que una Macro puede invocar a otras Macros, logrando
de esta forma obtener operaciones cada vez ms complejas.
BOTN DE COMANDO
Para colocar un botn 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
botn de comando. Dibuje un botn en la hoja de clculo.
2. En la ficha Desarrollador, hacer un clic en Propiedades, en la propiedad Caption digite el nombre
que deber mostrar en el botn


ASIGNAR UNA MACRO
Para asignar una macro (una o ms lneas de cdigo) para el botn de comando, ejecute los
siguientes pasos.
1. Hacer un doble clic en el botn de Comando, Aparece el Editor de Visual Basic.
2. Coloque el cursor entre Private Sub CommandButton1_Click () y End Sub.
3. Agregue la lnea de cdigo como se muestra a continuacin.

4. Cierre el Editor de Visual Basic. Haga clic en el botn de comando en la hoja (asegrese de que
el modo de diseo no est seleccionada).

Excel con VBA

11
Derechos Reservados para: AAA
MSGBOX
El MsgBox es un cuadro de dilogo en Excel VBA que puede utilizar para informar a los usuarios
sobre los cambios que se estn efectuando en el proyecto.
Mensaje Simple
Inserte el botn de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite un
mensaje simple.
MsgBox ("Qu fcil es VBA")

Mensaje de un valor ingresado en una celda
En primer lugar, introduzca un nmero en la celda A1.
Inserte el botn 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

Mensaje en Lneas
Para iniciar una nueva lnea en un mensaje, utilice vbNewLine.
Inserte el botn de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite un
mensaje siguiente.
MsgBox ("Excel Bsico" & vbNewLine & "Excel Intermedio")

Excel con VBA

12
Derechos Reservados para: AAA
INPUTBOX
La funcin Inputbox presenta un mensaje al usuario, permitindole ingresar un valor en una caja de
texto. Los parmetros principales de esta funcin son:
Inputbox (Promt, Title, Default)
- El parmetro Prompt especifica la leyenda que mostrar la caja de mensajes.
- El parmetro Title especifica el ttulo que llevar el cuadro de dilogo.
- El parmetro Default es el texto que mostrar la caja de texto.
Es una funcin que muestra una ventana en la cual el usuario puede digitar informacin y almacenar
en una celda de la hoja activa
Insertar un botn de comando, hacer un doble clic para ir al editor de Visual Basic, digite lo siguiente:


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


Excel con VBA

13
Derechos Reservados para: AAA
ERRORES DE MACROS
En este caso veamos cmo hacer frente a los errores de macros en Excel.
En primer lugar, vamos a crear algunos errores.
Coloque un botn de comando en la hoja de trabajo y agregue las siguientes lneas de cdigo:
x = 2
Range("A1").Valu = x


Esta ventana se muestra porque no reconoce a x (variable no declarada) y/o a Val u (propiedad
mal digitada)

Si usamos la instruccin Option Explicit en el inicio del cdigo 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.



Excel con VBA

14
Derechos Reservados para: AAA
Corregir Errores
En el Editor de Visual Basic, haga clic en Restablecer para detener el depurador

O digite la lnea de cdigo al principio seguido de Private Sub
Dim x As Integer

Para verificar o comprobar que no haya ms errores presione el botn 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 accin realizada va a detener la depuracin.



Excel con VBA

15
Derechos Reservados para: AAA
Depurar Lneas de Cdigo
Es posible que haya odo hablar de la tcnica llamada depuracin antes de ejecutar. Con esta
tcnica se puede recorrer el cdigo. Los procedimientos a seguir son:
En el Editor de Visual Basic, coloque el cursor antes de la lnea de cdigo Private Sub

Presione la tecla F8 y la primera lnea se pinta de color amarillo.

Presione F8 varias veces para pasar de lnea en lnea.

Cuando la lnea tiene algn error muestra la ventana siguiente de error

El objeto Range tiene una propiedad llamada Value. El valor no est bien escrita aqu.

La depuracin es una gran manera de no slo encontrar errores, sino tambin entender el cdigo
mejor.

Excel con VBA

16
Derechos Reservados para: AAA
RANGO DE OBJETOS
El objeto Range, que es la representacin de una celda (o celdas) en la hoja de clculo, es el objeto
ms importante de Excel VBA.
Con los ejemplos se tiene una visin general de las propiedades y mtodos del objeto Range.
Las propiedades son algo que un objeto tiene (Los que describen el objeto); mientras que,
Los mtodos son los que permiten hacer algo (Los que llevan a cabo una accin con el objeto).

EJEMPLO DE RANGOS.- Coloque un botn de comando en la hoja de trabajo y agregue la
siguiente lnea de cdigo:
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 Declarar ejemplo como Rango
Set ejemplo = Range("A1:C4") Establecer ejemplo al Rango ("A1: C4")
ejemplo.Value = 8 El valor del rango ejemplo es igual a 8


SELECCIONAR.- Un mtodo importante para el objeto Range es el mtodo Select. El mtodo
Select simplemente selecciona un rango.
Dim ejemplo As Range Declarar ejemplo como Rango
Set ejemplo = Range("A1:C4") Establecer ejemplo al Rango ("A1: C4")
ejemplo.Select Seleccione el rango ejemplo

Excel con VBA

17
Derechos Reservados para: AAA
CELDAS
En vez de Rangos, tambin 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 interseccin 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 especfica 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 especfica de un rango.
Dim ejemplo As Range
Set ejemplo = Range("A1:C4")
ejemplo.Columns(2).Select



Excel con VBA

18
Derechos Reservados para: AAA
COPIAR/PEGAR
Los mtodos 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


Tambin puede utilizar el cdigo en una sola lnea 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 mtodo ClearContents.
Range(A1).Clearcontents
o simplemente utilizar:
Range("A1").Value = ""


Para borrar el contenido y formato utilice el mtodo Clear
Range("A1").Clear


Para borrar solo el formato utilice el mtodo ClearFormats
Range("A1").ClearFormats

Excel con VBA

19
Derechos Reservados para: AAA
CONTAR
Con la propiedad Count, puede contar el nmero 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

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



Excel con VBA

20
Derechos Reservados para: AAA
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 numricos, pero en otros casos pueden
ser textos, fechas, etc.
Ese "reconocimiento inteligente" que hace Excel del tipo de variable, requiere la utilizacin de ms
memoria en el equipo (debido a que asigna por defecto un tipo de variable-comodn llamado
"variant") y por lo tanto es conveniente facilitarle las cosas indicando en lo que se llama una
"declaracin de variable".
Si no se declara la variable tomar como tipo de dato Variant (tipo de variable que almacena todo
tipo de informacin). El tipo variant ocupa 20 bytes. Cosa que no es recomendable
De ah se recomienda que la variable sea declarada. Y es ms fcil de hacer modificaciones
Declarar Variables a valores
Por qu declarar variables?
Bsicamente es para tener ms ordenado la codificacin. Si declara las variables:
Ocuparn menos espacio en memoria.
Nuestra macro ser difcil de interpretar para otros usuarios que puedan necesitar leer el cdigo
VBA (incluso para nosotros mismos). Tener al principio de la macro una lista con las variables
declaradas resulta muy til y aclarador.
Podra 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 declaracin de variables obligatorias y son:
Variable Local
Consiste en digitar Option Explicit al principio de la lnea de cdigo generando una lnea de divisin
entre el procedimiento sub o function.

Variable Predeterminada
El cual se mostrar a partir de un nuevo mdulo insertado.
Para predeterminar la variable seleccione el Men herramientas en el Editor de Visual Basic, hacer
un clic en Opciones, en la pestaa Editor activar la casilla requerir declaracin de variable

Excel con VBA

21
Derechos Reservados para: AAA
Declarar variables a objetos
Declarar variables de objeto est permite el ahorro en tiempo de escritura de cdigo, en tiempo de
ejecucin del mismo, as como la organizacin 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 lnea con la
palabra Set, como por ejemplo:

Tambin es til para hacer un recorrido hasta encontrar el que cumpla con la condicin especificada.
Reglas
Las variables a declarar deben seguir ciertas reglas determinadas:
La denominacin de la variable debe empezar con una letra y no con un nmero.
No debe de tener ms 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 aadir una lnea de cdigo para definir la naturaleza de los valores que
almacenaremos en ella. Estos son:
Integer (Entero)
La variable Integer se utiliza para almacenar nmeros 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 ms precisa que una variable de tipo entero y tambin puede
almacenar nmeros 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 declarar x como nmero
entero o decimal
x = 5.5 x es igual a 5.5
MsgBox "el valor es " & x mensaje: el valor es 5.5


Excel con VBA

22
Derechos Reservados para: AAA
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
smbolo monetario y dos decimales.
Dim celdita As Currency
celdita = 24
Range("A3").Value = celdita


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


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 nmero de 32 bits que puede variar entre -2.147.483.648 y 2.147.483.647. Las
variables Long slo 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 precisin de hasta 28 decimales con valores
desde -7,9228162514264337593543950335 hasta 7,9228162514264337593543950335.
Single: Es un nmero 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
nmeros fraccionarios dentro de este rango, este es el tipo de apropiado para su uso.
Object: Se utiliza Object cuando en el tiempo de compilacin no se conoce a qu tipo de datos
puede sealar 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 cdigo que el puntero utiliza
para buscar los datos, las variables Object son de acceso un poco ms lento que las variables que
tienen un tipo explcito.
Variant: Los Variant almacenan valores numricos y no numricos. Son los ms flexible de todos
los tipos disponibles, ya que almacena valores muy grandes de casi cualquier tipo (coincide con el
tipo de dato numrico doble). Se usa slo cuando no se est seguro del tipo o cuando se estn
acomodando datos externos y no se est seguro de las especificaciones del tipo de datos.


Excel con VBA

23
Derechos Reservados para: AAA
Date (Fecha)
El tipo Date almacena un valor numrico con formato
especial que representa tanto la fecha como la hora
Dim celdita As Date
celdita = Date
Range("A3").Value = celdita




Obtener el Ao, Mes, Da de una Fecha
Year, Month, Day
Dim mostrar_ao As Date
mostrar_ao = DateValue("01/01/2014")
MsgBox Year(mostrar_ao)

Nota: Usar Mes y da para obtener el mes y da de
una fecha.

Agregar nmero de Das a una Fecha
DateAdd
Para agregar un nmero de das a una fecha, utilice la funcin DateAdd.
La funcin DateAdd tiene tres argumentos.
Primer argumento: Digite "d" para agregar los das.
Segundo argumento: Digite 15 para agregar el nmero
de das.
Tercer argumento: Representa la fecha a la que se
agregar el nmero de das.
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 (ao), m (mes), d (da),
q (trimestre), e (da 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 funcin ahora.
MsgBox Now

Excel con VBA

24
Derechos Reservados para: AAA
Obtener Hora, Minuto, Segundo
Hour, Minute, Second
Para obtener la hora de un tiempo, utilice la funcin Hora.
MsgBox Hour(Now)


Convertir en un Nmero de Serie
TimeValue
La funcin TimeValue convierte una cadena en un nmero de serie de tiempo. Nmero de serie del
tiempo es un nmero entre 0 y 1. Por ejm: al medioda (la mitad del da) se representa como 0,5.
MsgBox TimeValue("11:05:00 am")


Ahora, para ver claramente que Excel maneja las fechas internamente como nmeros entre 0 y 1,
aada las siguientes lneas de cdigo:.
Dim y As Double
y = TimeValue("11:05:00")
MsgBox y



Excel con VBA

25
Derechos Reservados para: AAA
CADENAS DE TEXTO
A continuacin se describen las ms importantes funciones para manipular cadenas en Excel VBA.
Coloque un botn de comando en la hoja de trabajo y agregue las lneas de cdigo de abajo. Para
ejecutar las lneas de cdigo, haga clic en el botn de comando en la hoja.
Concatenar (Unin 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 ms a la
izquierda de una cadena, utilice Izquierda.
Dim text As String
text = "Elias"
MsgBox Left(text, 2)





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 funcin derecha. Tambin
puede insertar texto directamente en una funcin.
MsgBox Right("Aracely", 2)


Medio (Extraer)
Para extraer una subcadena, empezando en
una determinada posicin de una cadena, utilice
la funcin Mid.
MsgBox Mid("Alessandra", 3, 2)


Excel con VBA

26
Derechos Reservados para: AAA


Si desea extraer una subcadena que empieza
en una posicin 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 posicin de una
subcadena en una cadena, utilice
Instr.
MsgBox Instr("example text", "m")




Replace (Reemplazar)
Para reemplazar un carcter en una
cadena, utilice la funcin Replace
MsgBox
Replace(Eternamente,amente,o)

Potrebbero piacerti anche