2010-07-09 20 views
5

Acabo de enterarme de que se pueden programar macros en Word/Excel/PowerPoint. Eso es increíble porque tengo un documento de Word con 70 tablas para diseñar.¿Por dónde empiezo con la programación de VBA y macros en Word 2007?

Soy programador pero no sé VB, VBA o VB .NET. Estoy confundido con estos tres. Estoy familiarizado con la programación .NET usando C#. Ahora quiero escribir nuevas macros. ¿Dónde debería comenzar? ¿Qué son VB, VBA, VB.NET y cuál debo aprender? Por favor sugiera un poco de material.

Si aprendo para Word 2007, ¿eso ayudará con otras aplicaciones de Office Life Excel & PowerPoint?

Respuesta

2

Siempre tiene MSDN.
Si va a Microsoft Word> Desarrollador> Visual Basic y abre ThisDocument en el menú de la izquierda, tendrá el editor. Si presiona F2, obtendrá las bibliotecas que se pueden usar en Microsoft Word (el Examinador de objetos). El programa más fácil sería la siguiente:

Sub Hello() 
    MsgBox "Hello World" 
End Sub 

Cuando haya marcado el submarino, presione F5 (ejecutar).

En el Examinador de objetos tendrá tres objetos, propiedades, funciones y eventos diferentes. Cuando vea algo que le interese, vaya al reference para ver la palabra vba y ubíquelo.
[Si los cambios de enlace, puede encontrarla en el árbol bajo el MSDN Library> Oficina de Desarrollo> 2007 Microsoft Office System> Word 2007> Word 2007 Referencia del programador> Palabra de modelo de objetos de referencia]

creo que la más fácil Lo que hay que hacer es definir un problema que necesita reparado e intentar programarlo, similar a aprender cualquier otro idioma. No hagas que el problema sea fácil, pero no es difícil que te rindas.

5

He aquí una breve explicación de los diferentes fundamentos visuales:

  • Visual Basic 6 (VB6, o VB clásico)
    • Lanzamiento alrededor de 1998, esta fue la última iteración de la original de Microsoft "Visual Basic " Tiene los comienzos de desarrollo orientado a objetos, pero requiere que Visual Basic Runtime se ejecute. Muchas empresas han utilizado VB6 para aplicaciones comerciales internas. Fue reemplazado por VB.NET y .NET Framework.
  • Visual Basic para Aplicaciones (VBA)
    • VBA comparte la misma base de código que VB6 y en 1996 estaba disponible para ser licenciado a los desarrolladores a incluir en sus propias aplicaciones. Así es como aparece VBA en Microsoft Office, como un lenguaje incrustado que se puede usar para controlar las diversas aplicaciones de Office. Es importante recordar que VBA, que todavía se usa para codificar aplicaciones de oficina, tiene más de una década y puede sentirse así cuando uno está acostumbrado a trabajar con .NET.
  • Visual Basic .NET (VB.NET)
    • VB.NET fue un cambio radical de VB6.A pesar de que muchos desarrolladores han hecho referencia a las iteraciones posteriores de VB.NET en secuencia (por ejemplo, VB7, VB8, etc.), VB.NET comparte muy poco con VB6 y VBA además de la sintaxis BASIC. Muchos lo consideran más una nueva evolución en BASIC que una evolución en Visual Basic. Debido a que es completamente diferente de VBA y VB6, no puede usar el código VB.NET directamente en VBA.
    • Debido a que el código de VB.NET se compila con el mismo código de lenguaje intermedio administrado que C# y comparte las mismas API de .NET, puede sentir más común entre C# y VB.NET que VB6 y VB.NET desde una perspectiva de programación.

Si prevé hacer un montón de desarrollo en VBA, recomendaría altamente el VBA Developer's Handbook, Second Edition, por Getz y Gilbert.

Aprender la sintaxis de VBA para Word sin duda le ayudará cuando vaya a utilizar Excel, Access, etc. Sin embargo, cada aplicación tiene su propia API que proporciona un conjunto de objetos y métodos únicos para su dominio. Por ejemplo, estoy muy familiarizado con la programación en VBA en Excel y Access, pero nunca he hecho macroprogramación en Word. Aunque la sintaxis del código sería la misma, tendría que aprender la API de Word para poder programar en su contra.

Lo bueno de algunas de las aplicaciones de Office (Excel, por ejemplo) es que puede grabar una macro, ver qué código genera y luego modificar ese código para hacer lo que desee. Eso es en gran parte cómo comencé en la programación.

5

Hay algunas buenas respuestas aquí - Me gustaría ofrecer una mayor conjunto de sugerencias:

En primer lugar, si es compatible en su entorno, puede utilizar Visual Studio 2005/8/10 y sus habilidades a C# programa contra Office con "Visual Studio Tools for Office". Consulte esto thread para más detalles.

Si desea profundizar en VBA lugar (que personalmente me encanta porque el desarrollo es tan rápido en comparación con VS), comenzar con este artículo Ten Code Conversions for VBA, Visual Basic .NET, and C# que le mostrará muestras de los tres idiomas. A continuación, vea este webcast: Using Visual Basic for Applications (VBA) Every Day Is Easier Than You Think.

Thirdly- MSDN, leer a través de este: Getting Started with VBA in Word 2010. El 99% se aplica a Word 2007. Hay muchos otros artículos vinculados a partir de este o siempre puede ir a la página principal de Office VBA Developer Center como página de salto único.

Entonces es probable que sea hora de comenzar a programar directamente. Vea cómo funcionan las cosas, aprenda el Object Model de Word, etc. Siempre puede examinar SO bajo la etiqueta word-vba para ver lo que otras personas están tratando de hacer y las respuestas.

+1

+1 Buenos enlaces. Parece que sabe guiarse en Visual Basic. ¿Tienes algún consejo sobre este? : http://stackoverflow.com/questions/2551634/visual-studio-macro-getting-started-copy-a-definition-from-cpp-to-h – Default

+0

@Michael: Gracias. Desafortunadamente, no conozco una manera de convertir en este; aunque siempre lo he querido para una conversión de VB, sería increíblemente útil. –

+0

Un día me tomaré el tiempo y escribiré algo (y lo publicaré allí) jeje. gracias de todos modos :) – Default

Cuestiones relacionadas