Diez sugerencias de sentido común para hacer que la codificación de Excel VBA sea más rápida y fácil. Estos consejos se basan en Excel 2010 (pero funcionan en casi todas las versiones) y muchos se inspiraron en el libro de O'Reilly "Excel 2010 - The Missing Manual" de Matthew MacDonald.
1 - Siempre pruebe sus macros en una hoja de cálculo de prueba desechable, generalmente una copia de una con la que está diseñada para trabajar. Deshacer no funciona con macros, por lo que si codifica una macro que dobla, gira y mutila su hoja de cálculo, no tiene suerte a menos que haya seguido este consejo.
2 - El uso de teclas de acceso directo puede ser peligroso porque Excel no le advierte si elige una tecla de acceso directo que Excel ya está utilizando. Si esto sucede, Excel usa la tecla de acceso directo para la macro, no la tecla de acceso directo integrada. Piensa en lo sorprendido que estará tu jefe cuando cargue tu macro y luego Ctrl-C agrega un número aleatorio a la mitad de las celdas en su hoja de cálculo.
Matthew MacDonald hace esta sugerencia en "Excel 2010 - The Missing Manual".
Aquí hay algunas combinaciones de teclas comunes que nunca debe asignar a los accesos directos de macro porque las personas los usan con demasiada frecuencia:
Para evitar problemas, use siempre combinaciones de teclas de macro Ctrl + Mayús + letra, porque estas combinaciones son mucho menos comunes que las teclas de método abreviado Ctrl + letra. Y si tiene dudas, no asigne una tecla de acceso directo cuando cree una nueva macro no probada.
3 - ¿No recuerda Alt-F8 (el atajo de macro predeterminado)? ¿Los nombres no significan nada para ti? Dado que Excel hará que las macros en cualquier libro abierto estén disponibles para cualquier otro libro abierto actualmente, la manera más fácil es construir su propia biblioteca de macros con todas sus macros en un libro separado. Abra ese libro de trabajo junto con sus otras hojas de cálculo. Como dice Matthew: "Imagine que está editando un libro de trabajo llamado SalesReport.xlsx, y abre otro libro de trabajo llamado MyMacroCollection.xlsm, que contiene algunas macros útiles. Puede usar las macros contenidas en MyMacroCollection.xlsm con SalesReport.xlsx sin un enganche ". Matthew dice que este diseño facilita compartir y reutilizar macros en los libros de trabajo (y entre diferentes personas).
4 4 - Y considere agregar botones para vincular a las macros en la hoja de trabajo que contiene su biblioteca de macros. Puede organizar los botones en cualquier grupo funcional que tenga sentido para usted y agregar texto a la hoja de trabajo para explicar lo que hacen. Nunca se preguntará qué hace una macro crípticamente llamada nuevamente.
5 5 - La nueva arquitectura de seguridad macro de Microsoft se ha mejorado mucho, pero es aún más conveniente decirle a Excel que confíe en los archivos de ciertas carpetas en su computadora (o en otras computadoras). Elija una carpeta específica en su disco duro como una ubicación confiable. Si abre un libro almacenado en esta ubicación, se confiará automáticamente.
6 6 - Cuando esté codificando una macro, no intente construir la selección de celdas en la macro. En su lugar, suponga que las celdas que utilizará la macro han sido preseleccionadas. Es fácil arrastrar el mouse sobre las celdas para seleccionarlas. Es probable que la codificación de una macro que sea lo suficientemente flexible como para hacer lo mismo esté llena de errores y sea difícil de programar. Si desea programar algo, intente averiguar cómo escribir el código de validación para verificar si se ha realizado una selección adecuada en la macro.
7 7 - Puede pensar que Excel ejecuta una macro contra el libro que contiene el código de macro, pero esto no siempre es cierto. Excel ejecuta la macro en el libro de trabajo activo. Ese es el libro de trabajo que viste más recientemente. Como Matthew lo explica, "si tiene dos libros abiertos y usa la barra de tareas de Windows para cambiar al segundo libro, y luego de regreso al editor de Visual Basic, Excel ejecuta la macro en el segundo libro".
8 - Matthew sugiere que "para facilitar la codificación de macros, intente organizar sus ventanas para que pueda ver la ventana de Excel y la ventana del editor de Visual Basic al mismo tiempo, una al lado de la otra". Pero Excel no lo hará, (Organizar todo en el menú Ver solo organiza los libros. Excel considera que Visual Basic es una ventana de aplicación diferente). Pero Windows sí. En Vista, cierre todos menos los dos que desee organizar y haga clic con el botón derecho en la Barra de tareas; seleccione "Mostrar Windows lado a lado". En Windows 7, use la función "Ajustar". (Busque en línea "Windows 7 features Snap" para obtener instrucciones).
9 9 - El consejo principal de Matthew: "Muchos programadores encuentran que las largas caminatas en la playa o tomar una jarra de Mountain Dew es una forma útil de despejarse".
Y, por supuesto, la madre de todos los consejos de VBA:
10 - Lo primero que debe intentar cuando no puede pensar en las declaraciones o palabras clave que necesita en el código de su programa es encender la grabadora de macros y hacer un montón de operaciones que parecen ser similares. Luego examine el código generado. No siempre te indicará lo correcto, pero a menudo lo hace. Como mínimo, le dará un lugar para comenzar a buscar.
MacDonald, Matthew. "Excel 2010: El manual que falta". 1 edición, O'Reilly Media, 4 de julio de 2010.