Grado de dificultad: 2 (porque es un artículo largo y que los puede llevar muy lejos)

Columnista: Roberto

El artículo anterior dejó a nuestros lectores un tiempo para experimentar el dialogo con una máquina (un PC bajo Windows):

Programar – Hablar con una máquina

Es una valiosa herramienta que pueden seguir usando cuando quieran.

Nota preliminar: el presente artículo es un poco largo.

“Microsoft Excel” es programable

Modificar la configuración

Añadimos algo más elaborado, aunque todavía sencillo.

Nuestros queridos dummies, conocen, muy probablemente, a Microsoft Excel. Más exactamente, lo pensaban conocer hasta ahora.

Descubriremos que es (mucho) más poderoso de lo que creían: contiene una poderosa herramienta de programación llamada “Visual Basic”.

Sin embargo, este poder tiene sus riesgos, razón por la cual no está habilitado por defecto.

En el presente artículo no haremos programación como tal. Solo descubriremos como realizar esta magia.

Antes de poder usar esta habilidad, es necesario modificar la configuración de Excel.

Habilitación de las funcionalidades de programación

Para empezar, deben acceder al menú “Archivo” a la izquierda de la barra de menú principal (haciendo clic):

Barra de menus de Excel - Captura de pantalla
Menu Archivo de Excel - Opciones - Captura de pantalla

En la pantalla que aparece, hay una lista al extremo izquierdo de la ventana. En esta lista, debe elegir el último ítem abajo, “Opciones” (haciendo clic):

Les aparecerá la ventana “Opciones de Excel”, en la cual elegirán el ítem “Personalizar cinta de opciones” en la lista a la izquierda (haciendo clic).

Luego, en la lista que aparecerá a la derecha, activen la casilla de “Programador” (haciendo clic en el cuadrito).

Nota: si la casilla ya está “chuleada” (es posible, aunque poco probable) no necesita este paso.

Finalmente, validen este cambio, haciendo clic sobre el botón “Aceptar”.

Personalizar cinta de opciones Programador - Captura de pantalla

La ventana desaparecerá y, en la barra de menú principal, tendrán un nuevo menú, “Programador”:

Barra de menus de Excel - Programador - Captura de pantalla

Para qué sirve el menú “Programador”

Visual Basic

En Excel, existen varios niveles de programación. El nivel más elaborado es una programación como tal, con un lenguaje llamado “BASIC”, utilizado por muchos desarrolladores.

Este lenguaje, de origen académico (para enseñar la programación), nació en 1964, luego evolucionó mucho.

La versión que Microsoft puso en Excel se llama “Visual Basic”. Dispone de una interfaz visual y de herramientas que facilitan el trabajo de desarrollo.

El nivel más sencillo (el que examinaremos), es la creación de “macros”.

Una macro es una tarea que Excel puede ejecutar, automáticamente. Crearemos una, para que se den cuenta.

El menú “Programador” contiene los siguientes elementos:

Menú Programador de Excel - Captura de pantalla
Menú Programador - Grabar macro - Captura de pantalla

Para el presente artículo, solo nos interesa el módulo a la izquierda, llamado “Código”:

Uno de sus ítems dice “Grabar macro”. Es el que aprovecharemos.

Grabando una “macro”

Nombrar la macro

Antes de empezar, haremos clic sobre una casilla de la hoja Excel (cualquiera que no sea la primera, “A1”)

Hagamos clic sobre el ítem “Grabar macro”. Aparece la ventana siguiente:

Grabar macro Excel - Captura de pantalla

En el campo “Nombre de la macro”, reemplacemos el nombre por defecto por uno de nuestra elección, “Escribir_Texto_1”.

Dos comentarios:

  • El nombre propuesto por defecto es “Macro”, seguido de un número. Podríamos dejar este nombre, por pereza, pero es un peligro: todas las macros tendrían casi el mismo nombre.

El nombre personalizado nos permitirá identificar la tarea que ejecutará la macro.

  • La sintaxis del nombre importa: el espacio (de la escritura normal) no está autorizado. Es un “carácter inválido”.

Por eso es costumbre reemplazar el espacio por un guion bajo: “_”.

Crear la tarea de la macro

Al dar clic sobre el botón “Aceptar”, la ventana “Grabar macro” desaparece.

Celda 1 con Texto 1 - Captura de pantalla

Seleccionamos la primera celda (en la posición “A1”), y escribimos “Texto 1” en ella.

Es todo lo que hará esta primera macro.

Detener la grabación de una macro - Captura de pantalla
Iniciar la grabación de una macro - Captura de pantalla

Para terminar la grabación, hagamos clic sobre “Detener grabación” (es la opción que reemplazó “Grabar macro” cuando empezamos la grabación).

Ya tenemos nuestra primera macro.

Creamos otras dos macros:

  • “Escribir_Texto_2” escribirá el texto “Texto 2” en la celda “A2”,
  • “Escribir_Texto_3” escribirá el texto “Texto 3” en la celda “A3”.

En pantalla, su tabla Excel debe mostrar lo siguiente:

Celdas Excel con contenido - Captura de pantalla
Ejecutar macros

Hasta ahora, no hemos hecho nada especial… Así que borremos estos textos en pantalla.

Acceso a la lista de macros - Captura de pantalla

Con su pantalla “limpia”, regresemos al menú “Programador”, y hagamos clic sobre la opción “Macros”. Este icono hace parte del mismo grupo “Código”, y da acceso a la lista de macros asociadas a nuestro libro Excel.

Lista de macros - Captura de pantalla

¡Las tres macros que hemos creados están en esta lista!

Seleccionamos la macro “Escribir_Texto_1” y hagamos clic sobre “Ejecutar”.

Hagamos lo mismo con la macro “Escribir_Texto_2”, y finalmente con la macro “Escribir_Texto_3”.

¿Interesante, cierto? Ya superaron el primer nivel de programación.

Visual Basic

Acceder a la ventana de programación

Las macros podrían ser mucho más elaboradas: se puede, por ejemplo, grabar la secuencia de creación de una gráfica.

En el presente caso, hicimos tres macros muy sencillas, para facilitar nuestra próxima tarea: analizar su contenido.

Acceso a Visual Basic - Captura de pantalla

En el mismo grupo “Código” del menú “Programador”, se encuentra otra opción: “Visual Basic”, que mencionábamos al inicio del artículo.

Hagamos clic sobre esta opción.

Aparece una ventana completamente diferente.

Ventana de Visual Basic - Captura de pantalla

A la izquierda, está una lista de “objetos” en carpetas.

Una primera carpeta dice “Microsoft Excel Objetos” (las hojas y libros Excel son, efectivamente, objetos Excel).

Debajo de esta carpeta está otra que dice “Módulos”. Los módulos son bibliotecas de macros.

Uno puede crear muchos módulos. El primero que se encuentra en esta carpeta es “Módulo1”, el que se generó cuando hemos creado nuestras macros.

A la derecha, una zona de texto donde aparecen el contenido de las macros que hemos creado.

Nota: si esta zona de texto no muestra sus macros, por favor hagan un doble clic en “Módulo1” de la lista a la izquierda.

Contenido de las macros (minicurso)

Sin detallar mucho, veamos una de las 3 macros:

No está escrita en mandarín… En programación, se llama una “rutina” o un “subprograma” (por eso empieza por “Sub”). O llámenla “macro”, si prefieren su denominación Excel.

Una explicación rápida:

Una rutina “Visual Basic” empieza con una línea que dice “Sub”, seguida de un espacio y del nombre de la rutina.

Al otro extremo, la rutina se termina con una línea “End Sub” que indica el final de la rutina.

Cuando se pide la ejecución de la rutina macro, las líneas intermedias entre “Sub” y “End Sub” son las instrucciones que se ejecutarán.

En el presente caso, las tres instrucciones son:

  • Range(“A1”).Select
  • FormulaR1C1 = “Texto 1”
  • Range(“A2”).Select

Comentarios varios:

  • Los paréntesis después del nombre de la macro son integrados a Visual Basic (sin uso en nuestro caso)
  • Las líneas vacías sirven solo a proveer legibilidad entre bloques de líneas instrucciones (y no son leídas).
  • Las líneas que empiezan por un “ ’ ”, y que están escritas en verde son comentarios introducidos por el diseñador (y tampoco son leídas).

Escritura de un “batch”

En informática, un “batch” es una secuencia de comandos, y se trata del segundo nivel (todavía muy sencillo) en programación.

Les daremos un ejemplo de eso, usando las tres macros anteriores.

En el “Módulo 1”, debajo de la última macro, escribamos lo siguiente:

Macro Escribir_Todo - Captura de pantalla

En la ventana “Macros” aparecerá la nueva macro “Escribir_Todo” que, cuando se ejecuta, realiza lo que parece: ejecutar las tres macros en secuencia.

Por cierto, nos hemos tomado la molestia de “limpiar” las diferentes macros de la lista, para que vean cual es el contenido realmente útil:

Código de las macros - Captura de pantalla

Explicación: cuándo grabamos una macro, Excel interpreta lo que hacemos y lo traduce en un código “Visual Basic” que funciona, pero que no es óptimo (AKA compacto).

Ahora, se volvieron programadores de segundo nivel.

Les falta, sin embargo, una última información: cómo guardar sus macros.

Se necesita, simplemente, guardar el archivo Excel. Notaran un detalle: la extensión del archivo no será “.xlsx” sino “.xlsm” (terminando con una “m” por “macro).

Próxima etapa, quizás

Con las informaciones anteriores, pueden desenvolverse y, tal vez, antojarse.

Para terminar, y generar curiosidad, hemos escrito la macro siguiente, más compacta y que hace lo mismo que todas las anteriores:

Ejemplo de escritura Visual Basic - Captura de pantalla

Serían los primeros pasos de un tercer nivel, el que, pensamos, se pretende enseñar a los estudiantes.

Encontraran en Internet muchas propuestas para descubrir este nivel en Visual Basic (ninguna de las cuales les parecerá sencilla).

Sin embargo, nadie dijo cual lenguaje de programación será enseñado:

¿Visual Basic (como aquí), Basic.Net, C, C++, PHP, Python, Javascript? Sin saberlo, es muy complicado seguir adelante.

Vamos a pensar como escribir algo sobre los niveles de programación arriba de estos niveles básicos.

Será, muy probablemente en Visual Basic, porque hemos empezado con él, y que les da propósito e ideas con sus hojas Excel.

Es, de hecho, una razón de peso: para progresar en programación, hay que tener un propósito. Si no, se vuelve demasiado abstracto.

Programar – Microsoft Excel

Header Kirabytes1