¿Alguno de ustedes usa las capacidades macro de JavaScript de Google Apps, especialmente para las hojas de cálculo? ¿Cómo se comparan las capacidades? ¿Hay algo que Google Apps no pueda hacer que pueda hacerse con las macros de VBA?Macros de Google Apps: ¿cómo se comparan con las macros de Office VBA?
Respuesta
El VBA en Office ha sido el mismo desde hace unos 10 años, sigue utilizando el viejo VB6. Las limitaciones de ese lenguaje son infinitas. Sin estructuras de datos, sin cortocircuitos lógicos, tipos limitados, no orientados a objetos. Google Apps y javascript están presumiblemente a la vanguardia de la tecnología, por lo que no deberían tener muchas de estas limitaciones.
En cuanto a lo que cada uno es capaz de haciendo que el otro no puede, eso es un poco más difícil de afirmar. Yo diría que ambos lenguajes son más o menos completos, así que aunque puede ser más o menos difícil hacer algo en cada idioma, en teoría, un equipo lo suficientemente bueno de programadores podría hacer cualquier cosa en cualquiera de los dos.
Saludos: D
Uno de los principales obstáculos es que Google Apps está basada en web. Esa es la razón por la cual la mayoría de las empresas se avergüenzan ante la idea de que sus propios datos no estén almacenados de forma segura dentro de su propia red. Nunca confiaría en Google ese tipo de datos. Estoy seguro de que tienen conectores de datos seguros, pero ¿por qué correr ese riesgo?
Sure VBA está desactualizado, y no es tan sexy como javascript. Sin embargo, es una gran herramienta para escribir rápidamente aplicaciones pequeñas y llegar rápidamente al usuario. Solo escuchas historias de pesadilla sobre las aplicaciones que fueron creadas por no programadores que usan VBA.
Realmente depende de su proyecto y de lo que desea lograr. Ambos tienen sus limitaciones.
Habiendo tomado un rápido vistazo a la API de hoja de cálculo Google Me da la impresión de que su momento algo limitada, por ejemplo:
menos eventos, ningún control de cálculo ?, no hay manera de escribir UDF?
¿Alguien ha intentado usarlo para trabajos serios?
Creo que puedes escribir UDF, pero he jugado con eso durante cinco minutos, así que no tengo limitaciones. – jtolle
Por su naturaleza, una hoja de cálculo de Google no podrá hacer muchas cosas que un programa local hará. Ejemplo: una macro que importaría todos los archivos csv en una carpeta especificada por el usuario y los consolidaría.
Una cosa que me viene a la mente es que VBA tiene acceso completo a WinAPI a través de las declaraciones 'Declare Function'. La secuencia de comandos de Google Apps no tendrá este acceso. Esto es algo a tener en cuenta si está convirtiendo una hoja de cálculo entre los dos.
Estoy en medio de la conversión de un proyecto complejo de VBA a Google Apps Script como un experimento para ver qué se puede hacer y qué no.
En general, el entorno de desarrollo para el script de aplicaciones de google es primitivo y frustrante. El lenguaje es, por supuesto, javaScript, así que si ya lo sabes, entonces tienes una ventaja. El problema es que muchas de las ventajas de javaScript no son realizables ya que no tienes acceso a los elementos DOM, y tampoco tienes un equivalente de formas Excel, excepto a través del objeto UI, que es esencialmente el mismo que forma excel, con el mismo tipo de eventos y objetos etc.
Otro problema es la lentitud general. Debe tener cuidado de cómo se estructura, de modo que minimice las llamadas a los datos de la hoja de cálculo (solucioné esto construyendo una memoria caché de valores) y la escalabilidad es muy cuestionable.
Estoy igualmente en casa con javaScript o VBA, así que dejando el lenguaje a un lado, VBA es más satisfactorio y más rápido de hacer las cosas, aunque hay cada vez más capacidades incorporadas en el script de aplicaciones para hacerlo extremadamente prometedor.
Estoy registrando el progreso de mi migración, y las cosas que encuentro y las batallas para descubrir cómo minimizar el cambio estructural (estoy tratando de ver si puedo encontrar algo que permita el mantenimiento dual en ambos plataformas), por lo que si usted está interesado, puede seguir a lo largo de aquí
http://ramblings.mcpher.com/Home/excelquirks/gooscript
Bruce
GAS se ha movido a un nuevo nivel de utilidad que realmente aprovecha su 'existencia en la nube'. Ahora puede crear bibliotecas de scripts y compartirlos con sus propios proyectos, o incluso compartirlos públicamente o con grupos específicos. Así es como con algunos ejemplos de la biblioteca: http://excelramblings.blogspot.co.uk/2012/06/managing-libraries-with-google-apps.html – bruce
¿Qué hay de la compatibilidad con DDE? Supongo que las aplicaciones de Google no son compatibles. – User
Bueno, no .. Dde realmente no se traduce en una plataforma basada en la nube. Por supuesto, puede acceder a cualquier otra hoja de una secuencia de comandos y, por supuesto, utilizar desencadenadores y así sucesivamente para tratar con muchos de los casos de uso de tipo dde. ¿De todos modos, dde ya existe en Windows? Pensé que se había retirado en win xp release 2. – bruce
estoy tratando de crear gráficos en una hoja de cálculo Google con Google apps Script y es no parece posible ... Es bastante fácil en VBA, tal vez vb6 tiene 10 años pero, por otro lado, puedes hacer todo lo que necesitas con tu hoja de cálculo. Este no es el caso en los guiones de google.
Ver http://www.javascript-spreadsheet-programming.com/2013/05/vba-and-google-apps-script-side-by-side.html. Aquí hay un enlace a un PDF con muchos ejemplos de cómo hacer las mismas tareas en GAS y VBA. Me ha hecho comenzar con GAS.
- 1. ¿Usar Python para programar macros de MS Office?
- 2. ¿Dónde se almacenan las macros?
- 3. Documentación para macros VBA de Excel
- 4. ¿qué idioma necesito para escribir macros en LIbre Office Calc?
- 5. macros en macros
- 6. expansión de macros para las macros con argumentos frente a las variables con el mismo nombre
- 7. Primer Lisp con macros?
- 8. macros C++ con memoria?
- 9. macros de Visual Studio Editor
- 10. ¿Cómo se evalúan las definiciones de macros recursivas
- 11. macros variadic con cero argumentos
- 12. PHPExcel clonar .xlsm con macros
- 13. macros de asciidoc
- 14. DocBook macros?
- 15. CMake: Cómo pasar las macros del preprocesador
- 16. MS Access: ¿Cómo puedo averiguar dónde se usan las tablas, las consultas, las macros, etc.?
- 17. Sobre la dependencia de las macros
- 18. Evaluación Clojure de macros
- 19. ¿Por dónde empiezo con la programación de VBA y macros en Word 2007?
- 20. uso de `else` en las macros
- 21. Contenedores genéricos de tipo seguro con macros
- 22. Uso de macros en Clojure
- 23. Macros de control de flujo con 'goto'
- 24. permutaciones de matriz C con macros
- 25. ¿Hasta dónde pueden llegar las macros LISP?
- 26. Guardando macros vim
- 27. macros del preprocesador como parámetros a otras macros
- 28. ¿Qué pasará con Office VBA?
- 29. funciones Freemarker vs macros
- 30. Macros de lector de raquetas
No dudo de la integridad de los idiomas. Estoy más interesado en las diferencias entre los modelos de eventos, la interacción con el entorno, otros archivos y fuentes de datos, etc. El diablo siempre está en los detalles. – notnot
Bien, dado que la oficina de VBA no ve mejoras en ningún lanzamiento, y Google Apps es la última y mejor, la respuesta a la que tendrá un mejor modelo de eventos e interacción será sin duda la última. Mi apuesta es que el nuevo desarrollo será más fácil en Google Apps, pero estarían renunciando a 10 años de experiencia en VBA disponibles en Internet. VBA es más fácil si depende principalmente del material existente. Si fuera una decisión de diseño para una nueva aplicación, diría que Google Apps es la más prometedora, Excel VBA ofrece la mayor compatibilidad. – Alain
He estado buscando en la API y Google Apps simplemente se ve increíblemente superior. http://code.google.com/googleapps/appsscript/service_spreadsheet.html Para simplificar, han usado muchas de las mismas palabras clave, como rango, fórmulaR1C1, etc., pero tienen muchas características adicionales que permiten puede hacer rápida y fácilmente en un solo comando cosas que solían tomar subrutinas completas y soluciones complejas en VBA. – Alain