Diferencias entre scripts de Office y macros de VBA

Los scripts de Office y las macros vba tienen mucho en común. Ambos permiten a los usuarios automatizar soluciones a través de una grabadora de acciones fácil de usar y permiten la edición de esas grabaciones. Ambos marcos están diseñados para capacitar a las personas que pueden no considerarse programadores para crear programas pequeños en Excel.

La diferencia fundamental es que las macros de VBA se desarrollan para soluciones de escritorio y los scripts de Office están diseñados para soluciones seguras, multiplataforma y basadas en la nube.

Diagrama de cuatro cuadrantes que muestra las áreas de enfoque para las diferentes soluciones de extensibilidad de Office. Tanto los scripts de Office como las macros vba están diseñados para ayudar a los usuarios finales a crear soluciones. Los scripts de Office se crean para experiencias multiplataforma y colaboración, mientras que VBA es para el escritorio.

En este artículo se describen las principales diferencias entre las macros vba (así como VBA en general) y los scripts de Office. Dado que los scripts de Office solo están disponibles para Excel, ese es el único host que se describe aquí.

Plataforma y ecosistema

En la tabla siguiente se muestran las características que admiten las plataformas y los productos.

Excel en la web Excel para Windows Excel para Mac Excel para iOS Otros productos de Office Power Automate
Scripts de Office No No
Grabadora de acciones de Scripts de Office No No No
Macros de VBA No No No
Crear aplicaciones para Office No
Complementos COM No No No

VBA está diseñado para estar centrado en el escritorio. VBA puede interactuar con el escritorio de un usuario para conectarse con tecnologías similares, como COM y OLE. Sin embargo, VBA no tiene ninguna manera conveniente de llamar a Internet. Los scripts de Office usan un entorno de ejecución universal para JavaScript. Esto proporciona un comportamiento coherente y accesibilidad, independientemente de la máquina que se use para ejecutar el script. También pueden realizar llamadas a un conjunto limitado de servicios web.

Los usuarios requieren una licencia empresarial o educativa para usar o crear scripts de Office. Para obtener la lista completa de licencias admitidas, consulte Compatibilidad con la plataforma. VBA está integrado en las versiones de escritorio de Excel y no requiere licencias especiales.

Seguridad

Las macros de VBA tienen el mismo espacio de seguridad que Excel. Esto les proporciona acceso total al escritorio. Los scripts de Office solo tienen acceso al libro, no a la máquina que hospeda el libro. Además, no se pueden compartir tokens de autenticación de JavaScript con scripts. Esto significa que el script no tiene los tokens del usuario que ha iniciado sesión ni hay ninguna funcionalidad de API para iniciar sesión en un servicio externo, por lo que no puede usar tokens existentes para realizar llamadas externas en nombre del usuario.

Los administradores tienen tres opciones para macros vba: permitir todas las macros en el inquilino, no permitir macros en el inquilino o permitir solo macros con certificados firmados. Esta falta de granularidad hace que sea difícil aislar un solo actor malo. Actualmente, los scripts de Office pueden estar desactivados para todo un inquilino, activados para todo un inquilino o activados para un grupo de usuarios de un inquilino. Los administradores también tienen control sobre quién puede compartir scripts con otros usuarios y quién puede usar scripts en Power Automate.

Cobertura

Actualmente, VBA ofrece una cobertura más completa de las características de Excel, especialmente las disponibles en el cliente de escritorio. Los scripts de Office cubren casi todos los escenarios de Excel en la Web. Además, a medida que las nuevas características debutan en la web, los scripts de Office los admitirán tanto para la Grabadora de acciones como para las API de JavaScript.

Los scripts de Office no admiten eventos de nivel de Excel. Los scripts solo se ejecutan cuando un usuario los inicia manualmente o cuando un flujo de Power Automate llama al script.

Power Automate

VBA no tiene un conector de Power Automate. Todos los escenarios de VBA admitidos implican que un usuario asista a la ejecución de la macro.

Los scripts de Office se pueden ejecutar a través de Power Automate. El libro se puede actualizar a través de flujos programados o controlados por eventos, lo que permite automatizar los flujos de trabajo sin siquiera abrir Excel. Tutorial de prueba : Actualización de una hoja de cálculo desde un flujo de Power Automate para empezar a aprender sobre Power Automate. También puede consultar el ejemplo de recordatorios de tareas automatizadas para ver los scripts de Office conectados a Teams a través de Power Automate en un escenario real.

Vea también