2010-07-09 122 views
5

我刚刚才知道Word/Excel/PowerPoint中的宏可以编程。这太棒了,因为我有一个包含70个表格的Word文档。从哪里开始使用Word 2007中的VBA和宏编程?

我是一名程序员,但我不知道VB,VBA或VB .NET。我很困惑这三个。我熟悉使用C#编写.NET程序。现在我想写新的宏。我应该从哪里开始?什么是VB,VBA,VB.NET以及我应该学习哪一个?请建议一些材料。

如果我学习的Word 2007将帮助与其他Office应用程序生活Excel & PowerPoint?

回答

2

您始终有MSDN
如果您转到Microsoft Word> Developer> Visual Basic并在左侧菜单中打开ThisDocument,您将拥有编辑器。如果按F2,您将获得可在Microsoft Word(对象浏览器)中使用的库。最简单的方案是以下几点:

Sub Hello() 
    MsgBox "Hello World" 
End Sub 

当你的子标记,按F5 (运行)。

在对象浏览器中,您将有三个不同的对象,属性,函数和事件。当您看到一些引起您兴趣的事情时,请转至reference以查找word vba并找到它。
[如果链接的变化,你可以找到它在MSDN库树> Office开发> 2007 Microsoft Office系统>字2007> Word 2007的开发人员参考> Word对象模型参考

我认为最简单的要做的事情是定义一个需要修复的问题,并尝试对它编程,类似于学习任何其他语言。不要让问题变得简单,但不要放弃。

5

这里有不同的视觉基础知识的简要说明:

  • 的Visual Basic 6(VB6,或经典VB)
    • 1998年左右发布,这是微软独创的“Visual Basic中的最后一次迭代“。它有面向对象开发的开始,但它需要Visual Basic运行时才能运行应用程序。很多公司已经将VB6用于内部业务应用程序。它被VB.NET和.NET Framework取代。
  • Visual Basic应用程序(VBA)
    • VBA共享相同的代码库VB6,1996年提供给被授权给开发者在自己的应用,包括。这就是VBA如何在Microsoft Office中出现,作为可用于控制Office各种应用程序的嵌入式语言。重要的是要记住,仍然用于编写办公应用程序的VBA已有十多年的历史,并且在使用.NET时可能会有这种感觉。
  • 的Visual Basic .NET(VB.NET)
    • VB.NET是从VB6彻底背离。尽管许多开发人员依次引用了VB.NET的后续迭代(例如VB7,VB8等),但VB.NET与VB6和VBA分享的内容很少,而BASIC语法除外。许多人认为它更多是BASIC中的新进化,而不是Visual Basic中的进化。因为它与VBA和VB6完全不同,所以不能直接在VBA中使用VB.NET代码。
    • 由于VB.NET代码编译为与C#相同的托管中间语言代码并共享相同的.NET API,因此从编程的角度来看,您可能会觉得C#和VB.NET之间的通用性比VB6和VB.NET更高。

如果预期做了很多发展的VBA,我会强烈建议VBA Developer's Handbook, Second Edition,由盖茨和吉尔伯特。

学习Word的VBA语法无疑会在你使用Excel,Access等时为你提供帮助。但是,每个应用程序都有自己的API,它提供了一组对其域唯一的对象和方法。例如,我对Excel和Access中的VBA编程非常熟悉,但我从未在Word中完成宏编程。虽然代码语法是相同的,但我必须学习Word的API才能够对其进行编程。

有关Office应用程序(例如Excel)的好处是您可以录制宏,查看它生成的代码,然后调整该代码以执行所需操作。这很大程度上是我开始编程的。

5

这里有一些很好的答案 - 我想提供一个更一套建议:

首先,如果支持你的环境,你可以使用Visual Studio 2005年8月10日,你的C#技能通过“Visual Studio Tools for Office”针对Office的计划。有关更多详细信息,请参见thread

如果你想深入VBA,而不是(这是我个人很喜欢,因为发展是如此之快比VS),开始与本文Ten Code Conversions for VBA, Visual Basic .NET, and C#它会告诉你所有三种语言的样本。接下来,观看此网播:Using Visual Basic for Applications (VBA) Every Day Is Easier Than You Think

第三 - MSDN,通读如下:Getting Started with VBA in Word 2010。其中99%适用于Word 2007.还有许多其他文章与此链接,或者您始终可以作为单页跳转到Office VBA Developer Center的主页面。

然后开始直接编程也许是时候了。看看事情是如何运作的,学习Word的Object Model等。您可以随时在word-vba标签下浏览SO,看看其他人正在尝试做什么以及答案。

+1

+1良好的联系。你似乎知道你围绕Visual Basic的方式。你对这个有什么建议吗? :http://stackoverflow.com/questions/2551634/visual-studio-macro-getting-started-copy-a-definition-from-cpp-to-h – Default 2010-07-10 15:44:59

+0

@迈克尔:谢谢。不幸的是,我不知道这种转换方式 - 尽管我一直想自己做一个to-VB转换,但它会非常有帮助。 – 2010-07-11 15:37:22

+0

有一天,我会花时间写一些东西(并张贴在那里)嘿嘿。不管怎么说,多谢拉 :) – Default 2010-07-11 19:30:34