¿Por qué Microsoft aún distribuye VBA dentro de los productos de Office, en lugar de integrar .NET directamente? [cerrado]

12

Sé que es posible llamar a código .NET desde su código VBA, pero ¿por qué sigue existiendo VBA? La única razón por la que puedo pensar es en el legado.

Solo tuve que ordenar un Scripting.Dictionary y la cantidad de código necesaria fue aterradora.

El IDE se parece a Visual Studio 2003. Y hay muchos pequeños detalles que te vuelven loco (como cambiar la línea y recibir una advertencia debido a un error de compilación). O, si abre más de una hoja de cálculo, se mezcla con usted en "VBAProject" y esto es realmente confuso.

El módulo completo / módulo de clase / división de formularios no es realmente tan malo, pero termino cada vez que escribo directamente la lógica en los formularios o tengo un módulo enorme que se ocupa de todo.

¿Por qué no puedo presionar Alt + F11 y hackear C #?

    
pregunta Kiril 04.08.2014 - 16:39

4 respuestas

15

Microsoft Office tiene varias formas de permitirle cambiar / mejorar el comportamiento predeterminado mediante programación. VBA es un lenguaje probado en batalla, probado y ampliamente difundido para scripts en documentos. Mucha gente de oficina conoce VBA y lo usa, mientras que no conocen lenguajes de programación más complejos como C #. Office no se vendería tanto si los clientes tuvieran que volver a escribir un montón de documentos antiguos habilitados para macros que hacen negocios críticos, después de que aprendieron un nuevo idioma o lo que sea. La compatibilidad hacia atrás es una característica clave.

Es probable que una pila completa de .NET para Office requiera algún conjunto de administración de dependencias (dll: s, etc.) y se agrave fácilmente para administrar tareas sencillas: no es una alternativa para scripts ligeros. VSTO le ofrece la posibilidad de utilizar C #, pero al precio de un ciclo de desarrollo de complementos más intenso.

Un administrador de programas de Microsoft ha escrito sobre esto aquí . Está claro que VBA es y seguirá existiendo para pequeños propósitos de scripting.

    
respondido por el Petter Nordlander 04.08.2014 - 17:02
3

Bueno, la respuesta no es estrictamente "legado". La respuesta es que VBA no es ni VB6 ni VB.Net: es VBA. Un lenguaje separado, pero relacionado. Si se reemplaza VBA con VB.Net, inevitablemente se romperán muchos DOCUMENTOS.

Reemplazar VBA con VB.Net casi seguramente resultará en la pérdida de datos para un número significativo de usuarios de sus productos principales, no es una buena cosa.

Y su mercado objetivo para VBA no son los programadores.

    
respondido por el jmoreno 04.08.2014 - 17:02
2

Si considera que la razón principal por la que la gente compra Office es mantener la compatibilidad con todos los documentos existentes, muchos de los cuales tienen macros y VBA, sería un Microsoft muy valiente tratar a esos usuarios como lo hicieron con la multitud de VB6 y Dígales que lo absorban y comiencen a codificar en .NET, solo eche un vistazo a # 1 solicitud de servicio cada vez !

¡Me imagino que los chicos de LibreOffice se animarían a sí mismos a la inconsciencia!

VBA es para productividad en Office, no para "programación". El día que necesite más poder de sus documentos es el día en que contrate a un programador para volver a escribir todo. Supongo que otra razón es por la que las macros de Visual Studios tampoco son .NET: piense que el objeto COM devenv4 no es muy diferente de VBA.

    
respondido por el gbjbaanb 04.08.2014 - 22:33
1

Creo que hay una ligera, pero importante, diferencia entre legacy y popularity . Y cuando has realizado tantos contratos como yo, aprendes que VBA es increíblemente popular :) No puedo decirte cuántos contratos he hecho por "Excel jockeys" que no No sé nada sobre programación, pero puede aplastar a VBA como si fuera un asunto de vida o muerte.

    
respondido por el Unknown Coder 05.08.2014 - 17:55

Lea otras preguntas en las etiquetas