Hace varios años desarrollé una herramienta propia que me permite mostrar instantáneamente fórmulas de Excel en un comentario de celda formateado. Me han preguntado sobre este concepto con suficiente frecuencia como para que en este artículo explique cómo se puede crear una versión «lite» de mi herramienta.
Iniciaremos el proceso por medio de la grabadora de macros de Excel para que el macro pueda ser colocado en su Cuaderno de Trabajo de Macros Personal . Este macro requiere un código de programación que no puede ser grabado, así que sólo encenderemos y apagaremos la grabadora de macros para crear un shell inicial para el código de programación que copiarás y pegarás más adelante en este artículo.
- Elige el menú de Excel Ver .
- Haz clic en la flecha debajo del comando Macros .
- Elija Macro de grabación.
- Asigne un nombre a la macro que desea crear, como FormulaComment . Los nombres de las macros no pueden contener espacios ni puntuación; aunque se permiten los subrayados.
- Elija Cuaderno de trabajo de macros personales de la lista Guardar en .
- Haz clic en el botón Grabar .
- Haga clic en el botón Detener la grabación que aparece en la barra de estado de Excel . El aspecto de este botón varía según la versión de Excel, pero siempre es un cuadrado adyacente a la palabra Ready .
Figura 1: Las macros creadas dentro del Cuaderno de trabajo de macros personales están disponibles para todos los cuadernos de Excel.
Esto nos da el comienzo de nuestra macro, dentro de la cual podrás copiar y pegar algún código de programación. Primero debemos desocultar el Personal Macro Workbook para poder acceder a la macro subyacente, como se muestra en la Figura 2.
- Elige el menú de Excel Ver .
- Clic Desenmascarar .
- Haga clic en OK .
Figura 2: Debes desocultar el Cuaderno de trabajo de macros personales antes de poder editar un macro almacenado en él.
Aparecerá en pantalla un cuaderno de trabajo con el nombre Personal.xlsb . Este libro de trabajo tiene un par de características especiales:
- Típicamente las hojas de trabajo dentro de este libro de trabajo permanecen en blanco.
- El libro de trabajo se lanza automáticamente cuando se abre Excel.
- Las macros que coloque en este libro de trabajo están disponibles para todos los libros de trabajo abiertos en Excel. Esto significa que podrá usar la macro FormulaComment en cualquier otro libro de Excel.
- A menos que estés familiarizado con el editor Visual Basic de Excel , primero debes desocultar este libro de trabajo para hacer cambios en el macro subyacente.
El siguiente paso es acceder al código de programación generado por el Grabador de macros , como se muestra en la Figura 3:
- Elige el menú de Excel Ver .
- Haz clic en el comando Macros .
- Haga clic una vez en FormulaComment .
- Haz clic en Editar .
- En este punto, el editor Visual Basic de Excel aparecerá en pantalla, junto con los inicios de una subrutina.
- Activa de nuevo Microsoft Excel y luego haz clic en el comando Ocultar en el menú de Excel Ver para ocultar tu Libro de trabajo de macros de nuevo.
- Activar el Visual Basic Editor de nuevo.
Figura 3: El editor Visual Basic de Excel es una interfaz de programación para crear y editar macros dentro de Excel.
Como se muestra en la Figura 4, añadirás las siguientes líneas de código a tu macro, entre las líneas Sub y End Sub . En este caso Sub es la abreviatura de subrutina , que es otro nombre para una macro en Excel. Puedes copiar el texto de abajo al portapapeles y luego pegarlo en la subrutina.
Dim rng As Range
En Error Reanudar Siguiente
Fo
Si la Fórmula estrófica <> «» Entonces
rng.ClearComments
rng.AddComment
rng.Comment.Text strFormula
rng.Comment.Shape.TextFrame.Characters.Font.Size=14
rng.Comment.Shape.TextFrame.Characters.Bold=True
rng.Comment.Visible = True
Termina si
Siguiente
Sobre el error Ir a 0
Figura 4: El macro completo que almacenará las fórmulas de las células dentro de los comentarios.
Ahora vamos a desglosar las líneas de código para que puedas entender el concepto:
- Dim rng as Range crea un marcador de posición llamado rng que representará una celda de la hoja de trabajo individual que hayas seleccionado.
- On Error Resume Next instruye a nuestra macro para que salte sobre cualquier línea de código que desencadene un error. El macro sólo puede ejecutarse limpiamente si seleccionas una o más celdas de la hoja de trabajo, pero a veces puedes lanzar el macro sin querer mientras se selecciona un gráfico u otro objeto.
- Para cada rng en Selección establece un bucle, donde el proceso que establezcamos se llevará a cabo en cada celda que se seleccione en pantalla.
- strFormula = rng.Formula captura la fórmula de una celda dada y la almacena en una variable llamada strFormula . Capturamos la fórmula para poder colocarla en un comentario de celda más adelante en la rutina.
- Si la fórmula <> «» entonces nos permite que el macro actúe sólo en las células de la hoja de trabajo que no están en blanco.
- rng.ClearComments instruye a Excel para que elimine cualquier comentario de celda existente.
- rng.AddComment instruye a Excel para que añada un comentario a la celda actual.
- rng.Comentario.Texto strFórmula instruye a Excel para que el texto de nuestro comentario sea la fórmula que capturamos anteriormente en la rutina.
- rng.Comentario.Forma.TextoMarco.Caracteres.Tamaño.de.fuente=14 establece el tamaño de la fuente del texto del comentario en 14. Esta línea es opcional, por lo que puede borrarla por completo o cambiar 14 a un número de su elección.
- rng.Comentario.Forma.TextoMarco.Caracteres.Fuente.Negrita=Verdad hace que el texto dentro del comentario sea negrita. Puedes eliminar esta línea o cambiar True por False si no quieres que la fórmula aparezca en negrita.
- rng.Comentario.Visible = Verdadero es un paso opcional que indica a Excel que muestre el comentario en pantalla. Puedes eliminar esta línea o cambiar True por False si en cambio sólo quieres ver el comentario de la celda cuando pasas el ratón por encima de una celda.
- Fin Si cierra la línea de decisión que creamos con Si antes en la rutina.
- Siguiente indica a Excel que vaya a la siguiente celda de la selección si ha elegido más de una.
- On Error GoTo 0 desactiva nuestro manejo de errores que establecimos anteriormente en la rutina. Eso es un cero al final. Es una línea de código críptica, pero crucial en las macros para asegurar que se salte intencionadamente los errores en secciones específicas del código de programación.
En este punto, guarda los cambios que has hecho en el Personal Macro Workbook , y luego sal de Excel Visual Basic Editor como se muestra en la Figura 5.
- Elija (ti
- Elige el menú de Excel Ver .
- Haz clic en el comando Macros .
- Haz clic una vez en el nombre de tu macro.
- Haz clic en el botón Opciones .
- Asigne una tecla de acceso directo, como Ctrl-Shift-C .
- Haz clic en OK para cerrar el cuadro de diálogo Opciones de macros .
- Haz clic en Cancelar para cerrar el cuadro de diálogo Macro .
Tengan cuidado cuando asignen teclas de atajo a las macros. En este caso, si asignaste Ctrl-C, (pensando C para comentario ) tu macro sustituirá entonces el atajo de teclado Ctrl-C para copiar. El uso de la tecla Shift como parte del atajo de teclado asegura que no se pise inadvertidamente ningún atajo de teclado de Windows incorporado que utilice la tecla Ctrl y una letra.
Figura 5: La tecla de atajo que asignes para tu macro anulará cualquier atajo de teclado incorporado de Windows.
Ahora puedes hacer clic en cualquier celda que contenga una fórmula y pulsar Ctrl-Shift-C (o el atajo que hayas asignado). Como se muestra en la Figura 6, la fórmula debe aparecer dentro de un comentario de celda. Es posible que tengas que cambiar manualmente el tamaño del comentario para mostrar la fórmula en una sola línea. Es posible crear una macro de autodimensionamiento, pero esto va mucho más allá del alcance de la introducción del concepto de macros en Excel.
A continuación, puedes activar o desactivar los comentarios de las celdas mediante el comando Mostrar todos los comentarios del menú Revisión de Excel, o bien hacer clic con el botón derecho del ratón en una celda individual y elegir Mostrar comentario o Ocultar comentario del menú contextual.
Figura 6: Utilice la tecla de atajo asignada para mostrar la fórmula dentro de un comentario de celda.