He estado usando VBA para automatizar Excel durante algunos años. Últimamente he tenido problemas para compartir mis libros de trabajo habilitados para macros con colegas. A veces, su software de protección antivirus elimina los archivos e incluso Gmail los eliminó de mis correos electrónicos.
Escuché sobre Office-JS y sobre el uso de JavaScript para crear complementos, pero esto parece una sobrecarga excesiva. No quiero crear y hospedar un complemento, solo quiero poder compartir de manera efectiva mi trabajo en la automatización de Excel con colegas, tanto en mi empresa (una universidad) como fuera.
He pensado en compartir el código VBA por separado de los libros de trabajo, pero algunas de las personas con las que estoy trabajando no son del tipo que pueden importar código y formularios de manera efectiva, etc.
¿Hay algún consejo sobre cómo podría automatizar Excel sin los dolores de cabeza de alojar un complemento o trabajar con libros de trabajo habilitados para macros?
No, no es posible automatizar Excel en proceso. Y explicaré por qué... Puede usar cualquier lenguaje de script como JavaScript de Internet Explorer para automatizar Excel (fuera de proceso), pero la mayoría de los navegadores web (donde se puede ejecutar su código de script) no conocen COM. servidores y esta tecnología en general. Entonces, no tiene ningún sentido.
Los complementos web de Office son multiplataforma, lo que significa que el código se puede ejecutar desde un navegador web (O365) o clientes de escritorio de Office, etc. Se le ha dado un consejo válido: para desarrollar una extensión que se pueda implementar por separado, solo necesita transferir el libro de trabajo sin ningún código.
También puede considerar desarrollar un complemento basado en VSTO; puede ser un complemento de nivel de documento o de aplicación. En ese caso, debe crear un instalador de complemento independiente. Los complementos web simplifican mucho las implementaciones de sus soluciones de Office.
También puede pensar en Office Scripts. Están diseñados para soluciones seguras basadas en la nube. Pero, actualmente, las secuencias de comandos de Office solo se admiten en Excel en la web. Lea más sobre ellos en el artículo Diferencias entre los scripts de Office y las macros de VBA .
Finalmente, considere cargar sus libros de trabajo en una carpeta compartida en cualquier servidor de archivos como GDrive o OneDrive y envíe un enlace en su lugar. Espero que tenga sentido.
JScript puede y está integrado en Windows. VBScript también puede y también está integrado. Cualquier lenguaje de programación COM puede controlar servidores COM como Word, etc.
Una cosa importante a tener en cuenta para VBScript. Cuando los programas externos se ejecutan con enlaces en tiempo de ejecución, no hay acceso a las constantes. Introduzca el valor numérico de la constante. Por ejemplo, usa 5 no wdBold . Lo busca en el Explorador de objetos de Excel (presione F2 en el editor de VBA).
Set myExcel = CreateObject("Excel.Application") Msgbox myExcel.nameSi tiene Excel instalado, copie las líneas anteriores en un archivo llamado myscript.vbs. Si no, simplemente escriba en el cuadro de mensaje "hola mundo". Windows viene con los siguientes lenguajes integrados. VBScript, JScript, también viene con compiladores para JScript.Net, VB.NET, C# (consulte C:\Windows\Microsoft.NET\Framework\v4.0.30319 y jsc.exe, csc .exe y vbc.exe). Todos pueden acceder a la automatización COM. Windows Scripting Host ejecuta VBScript/JScript fuera de un navegador; escriba el símbolo del sistema wscript /?.