Академический Документы
Профессиональный Документы
Культура Документы
Excel?
Si utilizas Excel frecuentemente es posible que en alguna ocasin te
hayas encontrado ejecutando una misma serie de acciones una y otra
vez. Esas acciones que haces repetidas veces se podran automatizar
con una macro.
Una macro es un conjunto de comandos que se almacena en un lugar
especial de Excel de manera que estn siempre disponibles cuando los
necesites ejecutar.
Por ejemplo, si todas las maanas creas un reporte de ventas y en ese
reporte siempre das el mismo formato a los textos, se podra crear una
macro para que lo haga automticamente por ti. Las macros se utilizan
principalmente para eliminar la necesidad de repetir los pasos de
aquellas tareas que realizas una y otra vez.
Un lenguaje de programacin
Las macros se escriben en un lenguaje de computadora especial que es
conocido como Visual Basic for Applications (VBA). Este lenguaje permite
acceder a prcticamente todas las funcionalidades de Excel y con ello
tambin ampliar la funcionalidad del programa.
Las macros se crean con el Editor de Visual Basic el cual nos permitir
introducir el cdigo con las instrucciones que sern ejecutadas por la
macro.
Existe otro mtodo que es utilizar la Grabadora de macros la cual ir
grabando todas las acciones que realicemos en Excel hasta que
detengamos la grabacin. Una vez grabada la macro podremos
reproducir de nuevo las acciones con tan solo un clic.
Mostrar la ficha
Programador
Si quieres escribir una nueva macro o ejecutar una macro previamente
creada, entonces debes habilitar la ficha Programador dentro de la
cinta de opciones. Para mostrar esta ficha sigue los siguientes pasos.
Mostrar la ficha Programador en Excel 2010
La grabadora de macros
Puedes crear una macro utilizando el lenguaje de programacin VBA,
pero el mtodo ms sencillo es utilizar la grabadora de macros que
guardar todos los pasos realizados para ejecutarlos posteriormente.
La grabadora de macros en Excel 2010
El cdigo de la Grabadora
de macros
Una manera muy interesante de descubrir y aprender ms sobre cdigo
VBA es analizar el cdigo generado por la Grabadora de macros. Para
este ejemplo grabaremos una macro muy sencilla que solamente cambie
el color de la fuente de la celda actual.
Para comenzar debemos ir a la ficha Programador y pulsar el
comando Grabar macro lo cual mostrar el cuadro de dilogo donde
asignar un nombre a la macro que estoy por crear.
Establecer seguridad de
macros
La seguridad es un tema importante al hablar de macros en Excel. Si
abres algn archivo que contenga una macro maliciosa puedes causar
algn tipo de dao al equipo. De manera predeterminada Excel no
permite ejecutar macros automticamente.
Sin embargo, si ests creando tus propias macros y deseas remover esta
proteccin porque sabes que no existe cdigo malicioso, entonces
puedes modificar la configuracin para habilitar todas las macros. Para
hacerlo debes seguir los siguientes pasos.
Haz clic en la ficha Archivo y posteriormente en Opciones. Dentro del
cuadro de dilogo mostrado selecciona la opcin Centro de confianza y
posteriormente pulsa el botn Configuracin del centro de confianza.
Se mostrar el cuadro de dilogo Centro de confianza.
Programando en VBA
Excel 2010 es una de las herramientas de software ms poderosas para
el manejo, anlisis y presentacin de datos. Aun y con todas sus
bondades, en ocasiones Excel no llega a suplir algunas necesidades
especficas de los usuarios.
Afortunadamente Excel cuenta con VBA que es un lenguaje de
programacin que permite extender las habilidades del programa para
cubrir nuestros requerimientos. Utilizando VBA se pueden desarrollar
nuevos algoritmos para analizar la informacin o para integrar a Excel
con alguna otra aplicacin como Microsoft Access.
Principios fundamentales
Una vez dentro del Editor debes hacer clic derecho sobre el ttulo del
proyecto y dentro del men seleccionar la opcin Insertar y
posteriormente Mdulo.
Para probar nuestro cdigo bastar con pulsar el botn Ejecutar que se
encuentra dentro de la barra de herramientas.
Objetos, propiedades y
mtodos
Los objetos en Excel (VBA) son cosas. Una celda es un objeto, una hoja
es un objeto, un libro es un objeto y de esta manera existen muchos ms
objetos en Excel. A esto lo conocemos como el modelo de objetos de
Excel.
Navegando el modelo de
objetos
Excel tiene un modelo de objetos el cual es una jerarqua de todos los
objetos que podemos utilizar desde el lenguaje VBA. En la parte superior
de la jerarqua se encuentra el objeto Application y todos los dems
objetos estarn por debajo de l.
Acceder a objetos inferiores
Para tener acceso a los objetos que estn por debajo del objeto
Application podemos utilizar el punto. El punto nos ayuda a navegar por
la jerarqua hacia un nivel inferior. Observa lo que se muestra en el Editor
de Visual Basic al colocar un punto despus del objeto Application:
Para abrir un libro de Excel en VBA podemos utilizar el mtodo Open del
objeto Workbooks de la siguiente manera:
Application.Workbooks.Open Filename:="C:Libro1.xlsx"
Una vez que hemos abierto los archivos que necesitamos podremos
hacer referencia a cada uno de ellos a travs de la coleccin de objetos
Workbooks de la siguiente manera:
Application.Workbooks(1).Activate
Ahora ya sabemos que VBA tiene un objeto para representar los libros de
Excel (Workbook) y otro objeto para representar las hojas de un libro
(Worksheet). Ambos tipos de objetos son almacenados dentro de
colecciones de objetos que son conocidas como Workbooks, que se
refiere a la coleccin de libros que se han abierto y Worksheets que es la
coleccin de hojas que pertenecen a un determinado libro.
El objeto Application en
VBA
Cuando escribimos macros con VBA trabajamos con mltiples objetos
que pueden ejecutar nuestras instrucciones adecuadamente, pero el
objeto Application est en el nivel ms alto de la jerarqua del modelo de
objetos de Excel.
El objeto Application simboliza a Excel mismo y nos da acceso a
opciones y configuraciones a nivel de la aplicacin. Muchas de las
opciones que podemos modificar con el objeto Application son las
mismas que encontramos en la ficha Archivo dentro del cuadro de
dilogo Opciones de Excel.
Ya que el objeto Application es el objeto principal dentro de VBA todos los
dems objetos derivan de l. Es por ello que encontrars frecuentemente
instrucciones que comienzan especificando el objeto Application:
Application.ActiveSheet.Name = "Reporte de Ventas"
Una vez que el libro de macros personal ha sido creado lo podrs ver
dentro del Editor de Visual Basic:
Variables en VBA
Cuando programamos en VBA frecuentemente necesitamos un
repositorio para almacenar el resultado de alguna operacin.
Las variables en VBA son utilizadas para guardar valores y su tipo
depender de la clase de dato que deseamos guardar dentro de ellas.
En VBA existen variables de tipo entero que almacenan nmeros,
variables de tipo doble que tambin almacenan nmeros pero con
decimales, variables de tipo texto para guardar una cadena de caracteres
entre algunos otros tipos de variables. A continuacin haremos una
revisin de cada uno de estos tipos.
Variables de tipo entero
Las variables de tipo entero son utilizadas para guardar nmeros enteros.
Debemos utilizar la palabra claveInteger para declarar una variable de
este tipo.
Dim x As Integer
x = 6
Para unir dos (o ms) cadenas de texto podemos utilizar el operador &.
Observa el siguiente cdigo:
La funcin Left
La funcin Right
La funcin Len
La funcin InStr
La declaracin If-Then en
VBA
En ocasiones necesitamos ejecutar algunas lneas de cdigo de nuestra
macro solamente cuando alguna condicin se haya cumplido.
La declaracin If-Then nos permite validar una condicin para tomar
una decisin adecuada.
La sentencia If-Then en VBA es la ms bsica de todas las declaraciones
de control de flujo que son aquellas declaraciones que nos permiten
tomar decisiones en base a una condicin. Esta declaracin la podemos
traducir como Si-Entonces y la utilizaremos en situaciones donde
necesitamos realizar la siguiente evaluacin: Si se cumple la
condicin Entonces haz esto.
La declaracin If-Then-Else
Parece que todo funciona muy bien en el cdigo anterior pero an lo
podemos mejorar agregando la declaracin Else de manera que
tengamos una declaracin de la forma If-Then-Else. Esta variante nos
Range("B5").Value = 500
Cells(5, 2).Value = 600
La instruccin For-Next
El bucle For-Next es una de las instrucciones ms tiles al programar en
VBA. La sintaxis de esta instruccin es la siguiente:
For inicializacin de variable To lmite
{Conjunto de instrucciones que se repetirn}
Next incrementar variable
Eventos en VBA
Los eventos en VBA nos ayudan a monitorear las acciones que realizan
los usuarios en Excel de manera que podamos controlar la accin a
tomar cuando el usuario hace algo especfico como el activar una hoja o
hacer clic en alguna celda.
Arreglos en VBA
Los arreglos en VBA pueden ser entendidos como un grupo de
variables contenidas dentro de otro repositorio. Dentro de un arreglo
podemos referirnos a un valor especfico (elemento) utilizando su
posicin (ndice).
Para comprender mejor lo que es un arreglo observa la siguiente imagen:
Con este cdigo estamos creando el arreglo llamado Paises que tendr 5
elementos y estamos indicando que cada uno de los elementos ser del
tipo String, es decir, cadenas de texto. Una vez que ha sido creado el
arreglo podemos asignar sus valores de la siguiente manera.
Paises(1) = "Argentina"
Paises(2) = "Colombia"
Paises(3) = "Espaa"
Paises(4) = "Mxico"
Paises(5) = "Per"
El resultado es el siguiente:
Funciones VBA
DESCRIPCIN
Abs
Asc
CBool
CByte
CCur
CDate
CDbl
CDec
Choose
Chr
CInt
CLng
CreateObject
CStr
CurDir
CVar
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Dir
EOF
FileDateTime
FileLen
FormatCurrenc
y
FormatPercent
Hour
IIf
InputBox
InStr
InStrRev
Int
IsDate
IsEmpty
IsError
IsNull
IsNumeric
Join
LCase
Left
Len
LTrim
Mid
Minute
Month
MsgBox
Now
Replace
Space
Split
Str
Right
Rnd
Round
RTrim
Second
StrComp
StrReverse
Time
Timer
TimeValue
Trim
TypeName
UCase
Val
Weekday
WeekdayName
Year
Controles de formulario en
Excel
Los controles de formulario en Excel son objetos que podemos colocar
dentro de una hoja de nuestro libro, o dentro de un formulario de usuario
en VBA, y nos darn funcionalidad adicional para interactuar mejor con
los usuarios y tener un mejor control sobre la informacin.
Podemos utilizar estos controles para ayudar a los usuarios a seleccionar
elementos de una lista predefinida o permitir que el usuario inicie una
macro con tan solo pulsar un botn. Los controles de formulario en
Excel se encuentran dentro de la ficha Programador dentro del grupo
Controles. Solamente pulsa el botn Insertar y observars cada uno de
ellos:
Esto mostrar el Editor de Visual Basic con una subrutina para el evento
Click() donde podremos escribir nuestro cdigo.
En este ejemplo he especificado que los valores sean tomados del rango
A1:A6, lo cual da como resultado un cuadro de lista con los valores
especificados en dicho rango:
De esta manera, cada vez que hagamos una seleccin de alguna de las
opciones del cuadro de lista se ver reflejado su valor en la celda
asociada:
Cuadro combinado en
VBA
Excel tiene un control ActiveX conocido como Cuadro combinado el
cual tambin es llamado comnmente por su nombre en ingls: Combo
Box. Este control nos permite crear listas desplegables en nuestros
formularios.
Para insertar un Cuadro combinado debemos ir a la ficha Programador
y dentro del botn Insertar pulsar el comando Cuadro combinado (control
ActiveX):