vbnet - crear complemento excel con visual studio
ProgramaciĆ³n de Excel (6)
Me gustaría darle a mi novio un poco de programación. Si dependiera de mí, enseñaría Scheme, Haskell o F #, pero como él preferiría aprender algo que pueda ser útil en su trabajo como asesor fiscal, es decir, programando Excel.
¿Cuáles son las opciones para programar Excel? ¿Cuál recomendaría para alguien que recién está aprendiendo a programar y que aún desea hacer cosas? ¿Hay algún libro o recurso que recomiendas para él (usuario avanzado de Excel, programador principiante) o para mí (usuario intermedio de Excel, programador avanzado)?
Gracias. Empecé un blog sobre programación de Excel para documentar nuestros hallazgos.
Básicamente hay dos grandes opciones: puede escribir código VBA (macro) o código .NET.
El código VBA, que se basa en un lenguaje simple, tiene un umbral bajo. Pero si le interesa la programación en general, podría estar mucho mejor aprendiendo .NET (preferiblemente C #). Es mucho más poderoso que VBA y le enseñará mucho más sobre la construcción correcta del software y los conceptos esenciales detrás de él.
Creo que lo mejor sería que él programara algunas pequeñas y tontas aplicaciones de Winforms primero para obtener los conceptos básicos, y luego mirar a la interoperabilidad de Excel. Puede encontrar un montón de ejemplos de C # / Excel intererop code buscando en Google para "C # Excel". Aquí hay un ejemplo:
http://dotnetperls.com/Content/Excel-Interop-Performance.aspx
Como usuario y programador de Excel desde hace mucho tiempo (negocios), recomiendo comenzar con un buen libro de VBA que se centre en las características principales del lenguaje Básico y cómo comunicarse con los objetos de Excel (libros de trabajo, hojas, etc.). No me preocuparía por las formas de usuario, inicialmente, no las he usado durante años, y al principio tampoco me preocuparía demasiado por las bases de datos.
Sugiero centrarme en dos áreas en particular, comenzando con el lenguaje Básico en sí, escribiendo el resultado en la ventana Inmediato con Debug.Print e ignorando el hecho de que Excel está adjunto. Puede obtener una muy buena práctica resolviendo algunos de los problemas de Euler , que favorecen las soluciones de código puro sin interfaz de usuario.
Después de eso, aprendería cómo hablar con los objetos de Excel y leer tantos foros de Excel y páginas web como sea posible para obtener sugerencias. Por ejemplo, es mucho más rápido leer y escribir muchas celdas a la vez, que una a la vez.
Y sí, VBA no es tan completo como la mayoría de los lenguajes ''profesionales'', pero tiene una ventaja crucial sobre la mayoría de ellos: es mucho más fácil de escribir y para el usuario promedio verificar, modificar y mantener, y la capacidad de verificación y flexibilidad son crucial en el mundo de los negocios Junto con Excel, es una increíble herramienta de negocios.
Las macros son una forma de programar Excel. Mira este video de YouTube: http://in.youtube.com/watch?v=k_fWcffRAG4. Demuestra cómo grabar y usar Macro.
Puede hacer mucho con VBA, probablemente más de lo que alguien en finanzas desearía hacer. VBA está destinado, creo, para esas personas, pero generalmente tiene mala prensa. Creo que si usted, un programador, le enseñó a su novio VBA, desarrollará una cierta comprensión de la programación y también tendrá que entregar una herramienta extremadamente útil para el trabajo, mucho antes que cualquier cosa que se pueda lograr grabando macros. Además, es un paso muy corto de VBA a VBScript.
VBA es VB6, en términos de tiempo de ejecución al menos. Tiene suficiente capacidad OO para permitir la comprensión de la encapsulación y (por lo tanto, sin querer iniciar una guerra religiosa) de polimorfismo / herencia, si se acepta que las interfaces proporcionan algunos aspectos de los mismos. Si pasa mucho tiempo en Excel, entonces esperaría que haya algunas cosas repetitivas que haga en la actualidad que podrían beneficiarse al grabar una macro, y luego aprender a limpiarla. Eso puede llevar a escribir sus propias funciones de hoja de cálculo, bucles, todo tipo de cosas útiles. Si está realmente avanzado (cuestionario emergente: ¿sabe poner fórmulas en los nombres? ¿Se siente cómodo con las fórmulas de matriz?), Entonces habrá cosas que le molestarán cuando VBA pueda ayudar.
Creo que ignoraría .Net por ahora, es demasiado grande y le tomará demasiado tiempo poder producir sus propias soluciones.
Alternativamente, solo enséñale Ruby. Es en lo que comenzaré a criar a mis hijos cuando pasen de Scratch .
VBA es un excelente punto de partida para alguien nuevo en el desarrollo y desea conocer los conceptos básicos. Es posible programar Excel a través de muchos idiomas diferentes al aprovechar las bibliotecas de Excel o Word COM. Esto se puede hacer fácilmente en idiomas como C #, pero no es adecuado para alguien que comienza con la programación.
Solo una palabra de advertencia. Aunque VBA es un lenguaje de programación con todas las funciones y es capaz de soportar aplicaciones complejas, puede alentar prácticas de programación deficientes. He visto esto ocurrir en grandes organizaciones que usan Excel extensamente para cálculos actuariales. Básicamente, el código fue escrito por actuarios con cálculos financieros en mente, no ingeniería de software.
A largo plazo, los lenguajes de programación empresarial como Java o C # son mejores.