Documentos de Académico
Documentos de Profesional
Documentos de Cultura
No es extraño, por esto, que la posibilidad de crear macros se cuente entre las
características cruciales del programa de cálculo. La herramienta integrada en
Excel para grabar macros utiliza el lenguaje de scripts Visual Basic for
Applications (VBA), que también se implementa en Word, Powerpoint, Access y
Outlook. Gracias a este lenguaje es posible crear macros en Excel capaces de
ejecutar de forma automática comandos rutinarios o incluso añadir nuevas
funciones (algoritmos para el análisis de datos) a la hora de cálculo.
Mediante las listas (objetos señalados con el sufijo plural -s) las macros también
pueden ejecutar acciones sobre un grupo de objetos. El objeto para listas
“Worksheets” en una macro tiene como resultado que las instrucciones se aplican
a todas las hojas de trabajo. Para ejecutar una macro se tienen estas tres opciones:
Reducen el tiempo de trabajo: como las macros se crean una sola vez y
se utilizan siempre que se necesite, ahorran un tiempo valioso que es
posible dedicar a otras tareas.
Para crear macros propias hay que activar el editor Visual Basic, que forma parte
de las herramientas para desarrolladores y no está, por defecto, disponible en la
cinta de opciones (la antigua barra de herramientas). En un primer paso,
entonces, se debe añadir la pestaña o ficha denominada Developer
(Programador).
A continuación, se crea un libro que sirva de base a las macros registradas. Para
ello, haz clic en Macros en la pestaña Developer y cuando aparezca la ventana
emergente introduce el nombre de la primera macro –en este ejemplo “Hello”–
en Macro Name. Confirma haciendo clic en Create (Crear), a lo que se abre el
editor Visual Basic con el siguiente código:
La primera macro Hello con el mensaje “Hello world!” ha sido creada con éxito
Haciendo clic en OK se cierra la ventana y se finaliza la ejecución de la macro.
Las macros de Excel son accesibles para su ejecución tanto desde la pestaña
Developer como desde View, pero si se va a usar una macro a menudo, quizá
convenga generar un acceso rápido en la lista de símbolos de acceso
rápido en la parte superior izquierda. Eso se hace de la siguiente forma:
2. Abre las opciones y haz clic en Quick Access Toolbar (Lista de símbolos
de acceso rápido)
3. Selecciona en Choose comands from (Seleccionar comando desde) la
opción Macros y busca allí la macro “Hello” que has creado.
4. Añádela a la lista de símbolos de acceso rápido marcándola y confirmando
con Add (Añadir).
5. Antes de confirmar definitivamente con OK aún puedes determinar el
símbolo con el que se mostrará. Para ello selecciona la macro y a
continuación haz clic en Modify (Cambiar). Para este ejemplo se ha
elegido un smile.
Las cuatro primeras líneas de código bajo la línea que comienza con Sub, que
empiezan con un apóstrofe, constituyen comentarios que no tienen ninguna
influencia en la funcionalidad general de la macro y que solo sirven para una
mejor comprensión del código. Estos comentarios también permiten desactivar
temporalmente algunas líneas de código. En este ejemplo, concretamente, estas
cuatro líneas generadas automáticamente no son necesarias, por lo que podrías
borrarlas sin ningún tipo de problema, aunque, si no eres experto, te
recomendamos no hacer modificaciones innecesarias en el código.
Sub RenameWorksheets ()
Sheets("Sheet1").Name = "New Name"
End Sub
Ahora, vuelve a Excel y, de nuevo, cambia el nombre de la hoja de trabajo por el
de “Sheet 1” (u Hoja1) para poder ejecutar a modo de prueba la macro
“RenameWorksheets” recién creada. El nombre debería, así, cambiar
automáticamente. Ten en cuenta que para poder ejecutar otra vez la macro hay
que ajustar la macro al nombre nuevo.
Con una macro también se puede crear un comando para cambiar el nombre
de una hoja automáticamente
Cómo crear diagramas y cuadros de diálogo con macros de Excel
Hemos visto como Visual Basic facilita la mecanización de las más diversas
tareas en Excel. Con la ayuda de la grabación de comandos, el usuario no solo
dispone de una herramienta muy sencilla con la que simplificar los procesos,
sino que también adquiere, de paso, conocimientos sobre este lenguaje de
programación. Así que no dudes en usar el editor de código si te parece que
creando una macro en Excel podrías agilizar un determinado proceso.
Una función muy utilizada de las tablas de Excel es la visualización de los datos
como esquemas o gráficos, una tarea algo laboriosa para la cual las macros
pueden servir de gran ayuda. Para comenzar, crea una macro con el nombre
“AssortedTasks“ y declara la variable para tu objeto:
Sub AssortedTasks()
Dim mygraphic As ChartObject
Set mygraphic = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With mygraphic
.Chart.SetSourceData Source := Selection
End With
End Sub
Si, a continuación, a modo de prueba, introduces los valores del 1 al 5 en las
celdas A1-A5 y ejecutas la macro, Excel presenta los datos introducidos como
un gráfico de barras por defecto, al no haber proporcionado ninguna
información al respecto, que se haría mediante la variable ChartType.
Ejemplo de un gráfico de barras sencillo creado con una macro de Excel
Excel interactivo: crear cuadros de diálogo
Otra posibilidad que se deriva del uso de macros en Excel consiste en la creación
de cuadros de diálogo con los cuales los usuarios pueden interactuar con el
programa. Si, por ejemplo, se trata de crear una ventana en la cual el valor que
se introduzca se escriba automáticamente en una celda definida, comienza
creando y nombrando la macro como hasta ahora. En nuestro ejemplo, damos a
esta macro el nombre de “DialogBox”. En la subrutina indica a continuación el
lugar a donde se destina el valor que introducirán luego los usuarios:
Sub DialogBox()
ActiveSheet.Range("A1").Value =
End Sub
Con este código, la macro se encarga de que la información que ha introducido el
usuario en el cuadro de diálogo se guarde en la celda A1 de la hoja activa (Hoja
1).
Prompt: con ayuda del primer argumento se define el texto que aparece en
la ventana y que ha de servir de apoyo al usuario.
Title: con este argumento se determina la cabecera del cuadro de diálogo
Default: define un valor estándar
Este sería un código ejemplar de una macro completa para un cuadro de diálogo
con caja y texto:
Sub DialogBox()
Sheet1.Range("A1").Value = InputBox("Please, enter a value for the field A1",
"Title of the dialog box", "Value for the field A1")
End Sub
Si ejecutas la macro, aparece la ventana correspondiente: