Cuáles son las diferencias en la programación de Excel entre un UDF, Macro, Complemento, Complemento de Automatización, XLL o VSTO.
¿Cuál debería usar y bajo qué circunstancias?Metodologías de programación de Excel
Respuesta
Utilice VBA para Excel 2003 y versiones anteriores (aunque aún podría usarlo en 2007 si lo desea).
VSTO es para Excel 2003 o 2007.
El viejo Excel 4.0 lenguaje de macros definitivamente no debe utilizarse más, mantienen partes de discapacidad y la funcionalidad está desapareciendo. Tenemos que reescribir todas nuestras hojas de cálculo para sacar las viejas macros.
Las macros son otro nombre para el código VBA.
Un complemento es simplemente otro libro de Excel que tiene código (como VBA), por lo que puede usar el código en diferentes libros y mantener el código directamente fuera del libro de los usuarios.
Una UDF es simplemente una función escrita en VBA que se llama como una función de hoja de cálculo en una celda en una hoja de cálculo (también se puede almacenar en un complemento).
Lance tiene buenas definiciones para sus preguntas. En términos de qué usar cuando, VBA VSTO - si necesita usar el framework .net, vaya con VSTO. Por ejemplo, quería hacer una interfaz de programa de VB.net con una hoja de cálculo, aprendiendo que VSTO sería el camino a seguir (eso y vba no tienen array.sort como vb.net que me vuelve loco). Sin embargo, si estás haciendo una hoja de cálculo ingeniosa que hará algunas cosas interesantes para tus usuarios finales (fórmulas, gráficos, etc.), simplemente crea un código VBA dentro de la hoja de cálculo. Todo depende de lo que tienes que hacer. La mejor herramienta para el trabajo.
Voy a tratar de grupo/oponen a algunos de los elementos que mencionas:
VSTO vs VBA:
VBA (Visual Basic para aplicaciones) es la forma "clásica" para escribir la automatización de oficina. Excel tiene una interfaz de desarrollo que puede abrir desde la oficina para escribir macros y UDF, y que no ha cambiado durante aproximadamente 10 años. En el lado positivo, la implementación es trivial, y VBA ofrece características agradables como la grabación macro, que registra sus acciones en código, y proporciona una buena manera de descubrir el modelo de objetos.
VSTO surgió más recientemente, y le permite automatizar la oficina usando .NET (usa COM). Puede aprovechar todos los .NET y Visual Studio (por ejemplo, agregar formularios WPF), lo que brinda una gran flexibilidad pero la implementación es más compleja.
UDF vs vs macro Add-In
funciones definidas por el usuario son métodos a medida que permanecerán conectados a su libro; una vez que se agrega, obtiene el mismo estado que las funciones de Excel "incorporadas": puede llamarlas desde hojas de cálculo como = MiFunción()
Las macros son procedimientos que permanecerán adjuntos a su libro de trabajo. El usuario puede llamarlos directamente o adjuntarlos a eventos (por ej .: cuando se selecciona una hoja de trabajo, hazlo).
Los complementos no están adjuntos a un documento específico, sino a la aplicación en sí. Por lo general, una macro o UDF se adjunta al libro de trabajo: cuando abre el documento, el código queda disponible para usted, y cuando entrega el documento, el código también se copia. Por el contrario, los complementos se adjuntan a la aplicación: en el momento de iniciar Excel, el complemento estará disponible para usted. Herramientas como Solver son un complemento. Tenga en cuenta que los complementos se pueden escribir en VBA o utilizando VSTO (también puede escribir UDF en .NET, pero es atípico).
Cuándo usar qué
Add-In vs Macro/UDF: escriba un complemento si su funcionalidad debe ser accesible desde cualquier libro de trabajo.
VSTO o no VSTO: esto es un tema de debate. A la mayoría de las personas que están familiarizadas con la automatización de VBA "clásica" no les gusta demasiado VSTO, porque la curva de aprendizaje es un poco pronunciada. Si está acostumbrado a trabajar con .Net, esto no debería ser un problema, pero VSTO es algo peculiar en comparación con el desarrollo de aplicaciones .Net "normales".
Tenga en cuenta también que si utiliza VSTO, el usuario no podrá editar su código. Esto es posiblemente deseable, pero al mismo tiempo, los usuarios avanzados de Excel generalmente saben cómo usar VBA y macros, y esperan poder modificar el código. Eso puede llevar a discusiones interesantes.
Personalmente, me suelen utilizar VSTO de complementos, y lo uso tan pronto como veo que mucha lógica del código/de procedimiento va en macros en VBA. Lo que VSTO me da es la capacidad de escribir código comprobable, en Visual Studio, y también código de alto rendimiento cuando se trata de cálculos pesados. La otra razón para usar VSTO es aprovechar WPF para personalizar la oficina.
¿Puede dar un enlace en cuanto a exactamente lo que es WPF. He estado tratando de entenderlo pero simplemente no lo entiendo. ¿Para qué sirve? ¿Cuál es la diferencia entre esto y una aplicación de formulario? – Jon49
El propósito de WPF es similar a Winforms: le brinda una forma de crear formularios para el usuario. Los beneficios de WPF sobre los formularios son (entre otros) que es mucho más flexible, y que la funcionalidad y el diseño están separados. Por ejemplo, puede componer controles de la forma que desee para crear sus controles, lo que le da mucha libertad sobre lo que puede hacer con la interfaz de usuario, y una vez que su interfaz de usuario funciona, un diseñador puede hacer que se vea bonita. – Mathias
algunos puntos más desde el lado de las cosas VBA:
Add-in - Todo el código no trivial deben ir en un complemento. Un proyecto típico para mí consiste en un complemento que contiene todo el código, un almacén de datos (base de datos, archivo de texto, libro de trabajo de Excel) para contener los datos y una o más plantillas como capa de presentación o interfaz de usuario. No tiene que usar un complemento; el código funcionará bien en los módulos dentro de sus plantillas. Sin embargo, es una buena práctica mantener separadas las capas de su proyecto. El código va en un complemento, los datos van en una tienda de datos, las piezas de presentación van en un libro de trabajo o libros de trabajo. De esta manera, puedes cambiar tu código sin afectar las otras dos capas. O puede cambiar una plantilla de presentación sin afectar los datos existentes.
UDF - Esto se declara con la palabra clave Función. Use una función si necesita devolver un único valor (o matriz o instancia de objeto, etc.). Las funciones de hoja de trabajo personalizadas son UDF porque solo devuelven un valor a una celda. No cambian ninguna propiedad de la celda, excepto la propiedad Value. No puede aplicar bordes o fuentes, por ejemplo, a través de una función.
Macro - También llamado procedimiento, se declaran con la palabra clave Sub. Use un procedimiento si necesita hacer algo más que devolver un valor, como si necesita manipular partes del modelo de objetos de Excel.
- 1. Metodologías para diseñar un lenguaje de programación simple
- 2. ¿Cuáles son algunas metodologías de programación para desarrolladores en solitario?
- 3. Metodologías de prueba
- 4. Métricas de software en Metodologías ágiles
- 5. Ejemplos de vida real de metodologías y ciclos de vida
- 6. Creación mediante programación de hojas de Excel 2007
- 7. la creación de grandes hojas de Excel mediante programación
- 8. Metodologías de diseño de base de datos de gráficos
- 9. Insertar comentarios de celda en Excel mediante programación
- 10. Ocultar el libro de trabajo activo mediante programación en Excel
- 11. programación seleccionar otros precedentes hoja o dependientes en Excel
- 12. Mejores prácticas de programación asincrónica
- 13. Diferentes metodologías para resolver errores que solo ocurren en producción
- 14. ¿Cómo se relacionan las metodologías Ágil, Lean y Kanban?
- 15. Alterar mediante programación la altura de una fila de una hoja de Excel
- 16. Cómo se puede ejecutar una macro de Excel a través de una tarea de programación
- 17. Buenos recursos, por ejemplo, definiciones de proceso de metodologías de desarrollo de software?
- 18. Carga de complementos de Excel cuando se crea una instancia mediante programación
- 19. agregar mediante programación a pie de página del documento de la palabra/Excel
- 20. ¿Cómo puedo importar datos de Excel mediante programación en una tabla de acceso?
- 21. Fórmula de Excel a pseudocódigo
- 22. Hoja de cálculo de Excel de Excel utilizando EPPlus
- 23. ¿Las metodologías de administración de proyectos tienen sentido cuando soy el único miembro del equipo?
- 24. Obteniendo la última fila de Excel rellenada mediante programación utilizando C#
- 25. determinar mediante programación Si un archivo de Excel (.xls) contiene macros
- 26. Conversión de fecha de Excel usando PHP Excel
- 27. Abrir la aplicación de Excel desde Python
- 28. Gráficos de Excel + C#
- 29. Subcadena de Excel VBA
- 30. Macro independiente de Excel
Tres pequeñas notas, ya que el PO está pidiendo que comparar manzanas con cestas: (1) la palabra "macro" se utiliza a menudo para describir el código VBA, no sólo la edad Excel 4.0 lenguaje de macros. Es raro ver cualquier código de macro de Excel 4.0 "en la naturaleza". (2) Los complementos también se escriben comúnmente en VBA. (3) Las UDF se pueden almacenar tanto en complementos como en hojas de cálculo que los llamen. – richardtallent
Gracias, he editado todo eso. –
¿Cómo es VSTO para Excel 2007? He hecho un montón de proyecto con VSTO en Excel 2003. – Mathias