¿La gente todavía aprende VBA? En caso afirmativo, ¿por qué crees que lo aprenden, ya que puede no ser un lenguaje del futuro para los productos de oficina?

Cualquiera que se considere un usuario avanzado de Excel debería aprender VBA y usarlo para automatizar tareas rutinarias. Si pasa la mayor parte del día usando Excel, puede duplicar su productividad general al usar VBA, y obtener aún más dinero si sus colegas se aprovechan de su código.

El código VBA ahorra tiempo y aumenta la precisión al automatizar la rutina. Le permite concentrarse en la pequeña cantidad de cosas que son únicas en cada tarea, confiando en que todo el resto se haya manejado en un abrir y cerrar de ojos. El código VBA también permite que los nuevos empleados se vuelvan productivos mucho antes, ya que no se atascan en los detalles que el VBA ha automatizado.

He estado escribiendo el código VBA desde que salió Excel 5 en 1994. Mi primer proyecto fue calcular el rendimiento de algunos equipos de fabricación de hielo que mi empleador había licenciado. Tardé seis meses y 50 páginas de código en finalizar ese proyecto, y el cliente no estaba tan contento de recibir “solo una hoja de cálculo” como el producto final. Pero los métodos manuales que habían estado utilizando para este propósito eran mucho menos precisos, demoraban mucho tiempo para volver a verificar y dejaban a la empresa en riesgo de sobredimensionamiento (y, por lo tanto, no competitivos en las ofertas) y de tamaño insuficiente (un problema costoso de solucionar). en el campo). Con el código VBA, cada conjunto de cálculos de diseño tomó aproximadamente 10 segundos. Esto alentó al ingeniero de ventas a utilizar la hoja de cálculo para ajustar las entradas para optimizar el diseño comercial.

Desde entonces, he hecho del código VBA el punto focal de mi carrera. Cada vez que encontraba un cálculo que debía realizarse más de una vez, construía una hoja de trabajo con VBA para hacerlo. Cuando me encontré armando una lista de materiales para productos del tipo “modelo y opciones”, eso también podría automatizarse.

En un momento dado, mi trabajo giraba en torno a la recopilación de paquetes de entregables para que los revisaran el cliente y la empresa de ingeniería que gestionaba su proyecto general. El equipo que producimos estaba regulado por la FDA, por lo que el único paquete de entrega aceptable era uno que no tenía errores ni omisiones. A pesar de los años de experiencia, mis métodos manuales siempre tuvieron un pequeño porcentaje de errores. Pero al automatizar la producción de cada entrega con VBA, conduje a cero el número de comentarios de línea roja.

Cada vez que un cliente hacía una solicitud de cambios que consumían mucho tiempo, también era una oportunidad para que ayudara el código VBA. Agregué código a mis libros de trabajo con VBA para manejar fácilmente tales solicitudes, por lo que el costo de cumplir con ellos fue prácticamente cero. Luego le pedí al vendedor que alentara al cliente a realizar dichas solicitudes, sabiendo que podríamos mantener el límite en el precio, mientras que nuestros competidores tendrían que aumentar sus ofertas.

La pregunta original consideraba la posibilidad de que algo pudiera estar reemplazando a VBA. De hecho, ese evento ocurrió hace cuatro años, y JavaScript fue elegido como sucesor de VBA porque es más compatible con la nube. VBA no se extenderá a ninguna plataforma, además de las versiones de Office y Windows de Mac. Si desea ejecutar macros en Excel Online o en su dispositivo iPad, iPhone o Android, debe usar Office-js.

Microsoft ha estado creando el modelo de objetos Office-js para que coincida con lo que puede hacer en VBA. Ese proceso aún está en curso, pero puede crear un código utilizable en Offrice-js en este momento. Y si intentara escribir el código de Office-js, notaría una serie de deficiencias en comparación con VBA.

  • El código corre tanto como 10X a 100X más lento. No es un problema para tareas simples, pero sería para proyectos grandes.
  • El código se ejecuta de forma asíncrona. Esto significa que debe diseñar su código para esperar a que se complete la tarea anterior antes de iniciar la siguiente.
  • No hay grabadora de macros
  • La documentación se mantiene en GitHub y se proporciona soporte técnico a través de StackOverflow. Contrasta esto con la gran cantidad de sitios web que te ayudan con VBA.
  • El código de Office-js se ejecuta en un servidor. Por lo tanto, debe obtener la aceptación de su departamento de TI en cualquier proyecto que aborde. Con VBA, todo lo que necesita ya está instalado en su escritorio.
  • Aunque soy un activo en los foros de ayuda de Excel, veo cero preguntas de personas que usan Office-js. Parece ser una solución buscando un problema.
  • La codificación de Office-js está dirigida a profesionales del software. Aprendieron JavaScript en la escuela y ya tienen acceso a Visual Studio como un entorno de desarrollo de software.
  • La codificación VBA ha sido dominada por trabajadores del conocimiento fuera del departamento de TI en contraste. VBA es un lenguaje fácil de aprender, y no necesita el permiso de nadie para comenzar a usarlo. La gran mayoría de los desarrolladores de VBA son usuarios motorizados autodidactas que necesitaban realizar su trabajo y desesperados por obtener la atención del departamento de TI para ayudarlos. Al escribir ellos mismos el código VBA, aumentaron su productividad personal y se hicieron más valiosos para los empleadores actuales y futuros.

Dado que Office-js ha sido elegido como sucesor de VBA, puede preguntarse por cuánto tiempo seguirá siendo relevante VBA. En respuesta, tenga en cuenta que las macros de Excel 4 continúan siendo compatibles incluso en Excel 2016, aproximadamente 23 años después de que se hayan vuelto funcionalmente obsoletas con la introducción de VBA. En la actualidad, se utilizan enormemente más libros de trabajo basados ​​en VBA que los que usaban macros de Excel 4. En muchas organizaciones, esos libros de trabajo basados ​​en VBA son absolutamente críticos para la misión. Microsoft se da cuenta de esto y continuará admitiendo VBA hasta que ya no sea relevante. Eso será décadas después de que tú y yo nos retiremos.

Porque quieren automatizar las tareas de productividad de oficina ahora . VBA puede hacer que un empleado de oficina sea tan productivo como 10 o más. Una vez automaticé una tarea de Excel de CINCO DÍAS a solo UNA HORA con Excel VBA, y la persona que la ejecuta puede realizar otras tareas durante esa hora mientras se ejecuta en segundo plano. En realidad solo tomaron unos cinco minutos de su tiempo. Pasar de cinco días a cinco minutos es un factor de 480. Por lo tanto, la persona que ejecuta esa macro de Excel fue literalmente 480 veces más productiva que una persona que realiza la tarea manualmente. ¿Por qué esperar ese tipo de mejora de la productividad para poder utilizar un nuevo lenguaje de programación?

Microsoft ha estado hablando de un reemplazo para VBA desde que apareció .NET en, creo, en 2001.

La última vez que supe que habían dicho algo al respecto fue cuando se lanzó Excel 2010, cuando un gerente de producto dijo algo en el sentido de que tal vez deberían estudiarlo. Espero con interés el reemplazo de algún día sobre el arco iris de VBA, pero no estoy conteniendo la respiración.

Comencé a automatizar Excel cuando Excel 4.0 era actual, y el lenguaje de macros era el predecesor de VBA. Hoy se llama XLM, aunque en aquel entonces solo se llamaba macros de Excel. Comencé a aprender VBA el día que mi copia de Excel 5.0 (la primera versión que tenía VBA) pre-ordenada llegó por correo en febrero de 1994. Cuando el reemplazo de VBA llegue algún día, seré el primero en la fila para aprenderlo. Pero sería un tonto esperar.

Si realmente no quiere usar VBA, puede automatizar Excel con cualquier idioma que pueda ser un cliente COM y pueda crear un EXE. Puede usar VSTO en MS Visual Studio para hacer complementos de Excel, usando su elección de lenguajes de MS Visual Studio, como C #. Pero hacerlo de esta manera requiere que cada usuario instale su programa de instalación. Para algunos usuarios, eso es un factor decisivo. Además, no obtienes cosas agradables como autocompletar hacerlo en ese entorno.

VBA es enormemente útil en la industria cuando no tiene acceso a ningún otro idioma o IDE, y necesita automatizar tareas repetitivas o automatizar el análisis. Es muy útil.