TIAC01 U4 Intro
TIAC01 U4 Intro
TIAC01 U4 Intro
Indice
MACROS 3
Acceder a MACROS 3
Entorno de desarrollo 5
Aspectos básicos 5
Crear una MACRO 6
Subrutina 7
GRABADORA DE MACROS 8
FORMULARIOS 11
Formularios de datos 11
Controles de Formulario incrustados en hojas de cálculos 13
UserForms en VBA 15
Bibliografía 21
MACROS
Las macroinstrucciones o MACROS permiten realizar una serie de acciones repetitivas por medio
de comandos e instrucciones, lo que hace más eficiente el trabajo con nuestras planillas electróni-
cas.
Las MACROS se guardan en una zona especial de la planilla electrónica, y están disponibles para
ser ejecutadas cuando sea necesario, incluso con tan solo una combinación de teclas.
A modo de ejemplo, si diariamente se crea un reporte de ventas y en ese reporte siempre se
aplican los mismos formatos a los textos, se podría crear una macro para que lo haga automáti-
camente. Las macros se utilizan principalmente para eliminar la necesidad de repetir los pasos de
aquellas tareas que se deben realizar una y otra vez.
Las macros se escriben en un lenguaje de programación llamado Visual Basic for Applications
(VBA), ampliamente utilizado, desde hace ya un par de décadas, especialmente por su sencillez y
fácil comprensión.
Acceder a MACROS
Para tener mayor control de las opciones que tienen las MACROS, puedes habilitar la ficha o
pestaña “Desarrollador”. Para visualizar esta ficha dentro de la cinta de opciones (por defecto no
aparece), debes:
Entorno de desarrollo
El entorno de desarrollo es muy similar a lo que fue Visual Basic 6.0, con una estructura que permi-
te visualizar los archivos del proyecto.
3 4
Aspectos básicos
La programación en VBA puede ser un tanto atemorizante para gran parte de los usuarios de Excel,
sin embargo tras comprender los principios básicos de programación en VBA se estará en condicio-
nes de crear soluciones más robustas y muy efectivas.
Lo primero que debemos entender es que cada elemento de Excel, es representado en VBA como
un objeto con el que podemos interactuar. Por ejemplo, el objeto Workbook representa a un libro
de Excel. De igual forma, el objeto Sheet representa una hoja y el objeto Chart un gráfico.
Luego, cada uno de estos objetos tiene propiedades y métodos. Una explicación rápida para estos
conceptos, es que las propiedades corresponden a características de un objeto, y los métodos a las
acciones que pueden realizar. Por ejemplo, si nuestro objeto es un árbol, sus propiedades serían
desde la especie, los años, si es frutal o no, etc. En cambio, los métodos serian florecer, caducar
hojas, crecer, etc.
El objeto Workbook tiene propiedades como Name (nombre), ReadOnly (solo lectura), ActiveSheet
(hoja activa), FileFormat (Formato del archivo), etc. Algunos de sus métodos son Save (Guardar),
Close (Cerrar), SendMail (Enviar por mail), PrintOut (Imprimir), etc.
Para crear una MACRO, debes comenzar creando un módulo, donde podrás escribir las rutinas que
darán vida a tu macro. Para crear un módulo, debes:
3
4
1. En la pestaña Desarrollador, haz clic sobre el primer botón que aparece en la cinta de
opciones “Visual Basic”.
2. Hacer clic con el botón derecho sobre el nombre del proyecto: VBAProject(Nombre del
Archivo) por defecto.
3. En el menú desplegable seleccionar “Insertar”.
4. Luego pinchar la opción módulo.
Subrutina
La subrutina HolaMundo(), al ser ejecutada, abre una ventana emergente y en ella muestra un
mensaje que dice “Hola curso!”.
Para ejecutar la subrutina basta colocar el cursor en alguna sección de dicha subrutina y pulsar la
tecla F5.
GRABADORA DE MACROS
Si bien se le saca mayor partido a una macro escribiéndola uno mismo, también es cierto que no
todos tienen la intención ni la paciencia de escribir código en VBA. Por eso, Excel incorpora un útil
grabador de macros, el que tras “grabar” las acciones que realizas en Excel, te permite volver a
ejecutarlas cuantas veces necesites.
Por ejemplo, para establecer una MACRO, con la opción Grabar, que siempre nos ordene una tabla
de acuerdo a la primera columna sigue estos pasos:
6. Selecciona Macros (Ver Macros), y verás listada la macro que acabamos de grabar con el
nombre que le dimos: “OrdenarTabla”.
7. Al seleccionar Modificar, podrás ver el código que ejecuta la Subrutina OrdenarTabla():
Para comentar una línea o parte del código, en VBA se coloca una comilla simple a la
izquierda de lo que quieres comentar (‘). En el ejemplo, por defecto, el grabador de macros deja
como comentario el texto “OrdenarTabla Macro”.
Range permite hacer referencia a un rango de celdas. En el ejemplo, se hace referencia a solo
una celda (A4), pero podría ser un rango como A1:C4.
ActiveWorkbook se refiere al libro que está activo. Este libro activo tiene Worksheets, es de-
cir, hojas, por lo que hacen referencia a la hoja que lleva por nombre “Ventas” que es donde se
encuentra alojada la celda A4. Sort.SortFields.Clear limpia cualquier ordenamiento que se haya
realizado sobre la hoja de “Ventas”.
De esta forma, definió que el rango de datos que se ordenará por la llave (Key) A4, será
A5:H1000, el orden no incluye la cabecera, No considera las mayúsculas (pondera por igual
mayúsculas y minúsculas), orienta de arriba hacia abajo, etc. Finalmente, aplica el filtro.
FORMULARIOS
Los formularios en Excel tienen como objetivo minimizar los errores comunes en el ingreso de
datos a una planilla. Un símil a un formulario en Excel es el típico formulario en papel que más de
alguna vez hemos tenido que llenar.
Ahora bien, en Excel existen tres tipos de formularios que podemos utilizar de acuerdo a las nece-
sidades que tengamos:
Formularios de datos
Permiten llenar los datos de una tabla orientando, eficientemente, al usuario. Básicamente, mues-
tra en un formulario los datos correspondientes a un registro de una tabla.
Excel genera automáticamente este tipo de formulario, y para poder utilizarlo debes seguir estos
pasos:
5c
3
5b
5a
5d
5. En el listado que se muestra debajo de Todos los comandos, selecciona Formulario y dale
clic a “Agregar >>” y luego Aceptar.
Los controles de formulario son objetos propios de VBA, que podemos incrustar dentro de nues-
tras planillas, lo que nos dará funcionalidad adicional para la interacción con el usuario, y mejorar
el control sobre la información.
Con este tipo de controles, podemos ayudar a los usuarios a seleccionar dentro de una lista des-
plegable o permitir que el usuario inicie una macro con solo presionar un botón. Para hacer esto
último, debes:
Ahora, al hacer clic en el botón Ordenar por Nombre de Vendedor, se ejecutará la macro Orde-
narTabla, a la que hemos agregado una instrucción que muestra un mensaje al terminar.
UserForms en VBA
Los formularios en VBA permiten establecer un diálogo más fluido con el usuario, utilizando con-
troles como los vistos en el punto anterior. Para crear un formulario de usuario, debes hacer uso
del editor de VBA, el mismo explicado en el capítulo MACROS.
1 2
3. Los formularios, como buena parte de los objetos en VBA, tienen propiedades que pueden
ser editadas durante el diseño. Así, para cambiar el título a la ventana del formulario (User-
Form1), debes hacer click con el botón derecho del mouse sobre el área de desarrollo donde
aparece un menú contextual en el que debes seleccionar Propiedades, o también puedes
buscar la subventana directamente.
4. En la ventana Propiedades, ordena las opciones de configuración del formulario por Ca-
tegorías, y en la propiedad Caption, define un título adecuado (Formulario de ingreso). Allí,
también puedes modificar el color de fondo (BackColor) y el color del borde (BorderColor),
además de otras propiedades del formulario.
Por medio del cuadro de herramientas puedes crear, pinchando en un control y luego dibujando un
rectángulo sobre el área de desarrollo, un formulario como el que se muestra a continuación.
2 3
1. Puedes insertar logos y otros archivos gráficos en el formulario por medio del control Ima-
gen.
2. Los encabezados de campo (Marca, Modelo, Año y Operador), se insertan a partir del con-
trol Etiqueta.
De la misma forma en que cambiaste el título del formulario, puedes cambiar el caption de las
etiquetas.
3. Para que el ingreso de los datos sea rápido, puedes utilizar el control Cuadro de lista, me-
diante la cual puedes ofrecer un número limitado de opciones a ingresar.
Observa en la captura anterior la propiedad RowSource, allí puedes ver de dónde salen las
opciones del listado.
4. Los campos en blanco que aparecen enfrente de los encabezados, se agregan a partir del
control Cuadro de texto.
5. El botón Agregar Venta se inserta por medio del control Botón de comando.
Del mismo modo que cambiaste el título del formulario, puedes cambiar el caption del botón.
Ahora bien, hacen falta todas las acciones sobre los objetos que hemos puesto en el formulario.
Si fueses un experto programador, te daríamos un código que puedes adaptar a cada campo, pero
aquí lo que nos interesa es hacerle a Pedro las cosas más sencillas y que su formulario pueda ingre-
sar datos en una hoja de cálculo. Por lo que vamos a tomar el camino más sencillo.
1. Si te fijas, cada objeto que pusiste en el formulario tiene una propiedad llamada Control-
Source dentro de la categoría Dato. Allí puedes decirle a la aplicación computacional que
el dato ingresado en ese campo (Marca, Modelo, Año y Vendedor) quede registrado en una
celda específica dentro de la hoja de cálculo. Quiere decir:
ControlSource =B3
ControlSource =C3
ControlSource =D3
ControlSource =E3
2. Ahora vamos a configurar la acción del botón Agregar Venta. Primero, la acción de este
botón va a ser, realmente, insertar una nueva fila en la hoja de cálculo en la que se están
creando los registros; para que la tabla de datos se vaya organizando en forma descendente,
del último registro hecho al registro más antiguo. Para esto utilizamos la opción Grabar Ma-
cro. ¿Te acuerdas? (Capítulo Grabadora de MACROS).
4
5
5 6
8 7
7. Copia la parte del código que comienza con Rows y termina en Above. Estamos copiando el
código que permite insertar una fila (así nos ahorramos aprendernos de memoria las líneas de
programación).
8. En esa misma ventana de edición de código, en la subventana Proyecto, vas a ver una
carpeta que dice Formularios y, en ella, UserForm1 (Puedes renombrar el formulario si así lo
deseas, pero NO utilices espacios); dale doble clic a ese formulario que es sobre el que vienes
trabajando.
9. Haz clic con el botón derecho del mouse sobre el botón Agregar Venta, en el menú contex-
tual escoge la opción Ver Código, o con doble clic sobre el botón.
10
11
10. Dentro del código, en la primera línea (CommandButton1_Click), pega el código que co-
piaste en el paso 7.
11. Llegó la hora de correr nuestra MACRO y ver su funcionamiento. Para esto, en la Barra
estándar, puedes hacer clic sobre el botón Ejecutar o pulsar la tecla F5 , esto hará que
aparezca el formulario sobre la hoja de cálculo y puedas ingresar los datos en las distintas cel-
das. Al pulsar Agregar Venta, se generará una nueva fila encima, lo que permite que los datos
se almacenen del más reciente al más antiguo.
Bibliografía
Bott, E. (2007). La biblia de Office 2007. Anaya Multimedia.
Hart-Davis, G. (2010). Paso a paso: Microsoft® Office Excel® 2007. McGraw-Hill Professional Publishing.
Vértice (2008). Casos prácticos de Excel aplicados a la gestión empresarial. Editorial Vértice.