我在哪里开始使用Word 2007中的VBA和宏编程?

pec*_*ker 5 vba ms-word powerpoint-vba

我刚才知道可以编写Word/Excel/PowerPoint中的宏.这很棒,因为我有一个包含70个样式表的Word文档.

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

如果我学习Word 2007将有助于其他Office应用程序生活Excel和PowerPoint?

Ben*_*ack 5

以下是不同Visual Basic的简要说明:

  • Visual Basic 6(VB6或经典VB)
    • 在1998年左右发布,这是微软最初的"Visual Basic"的最后一次迭代.它具有面向对象开发的开始,但它需要Visual Basic Runtime才能运行应用程序.许多公司已将VB6用于内部业务应用程序.它被VB.NET和.NET Framework取代.
  • Visual Basic for Applications(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中进行大量开发,我强烈推荐Getz和Gilbert撰写的VBA开发人员手册第二版.

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

一些Office应用程序(例如Excel)的优点在于,您可以录制宏,查看它生成的代码,然后调整该代码以执行您想要的操作.这主要是我开始编程的方式.


Tod*_*ain 5

这里有一些好的答案 - 我想提供一组建议:

首先,如果您的环境支持,您可以使用Visual Studio 2005/8/10和您的C#技能使用"Visual Studio Tools for Office"对Office进行编程.有关详细信息,请参阅此主题.

如果你想深入研究VBA(我个人喜欢,因为与VS相比开发速度如此之快),请从本文开始,为VBA,Visual Basic .NET和C#提供十个代码转换,它将向您展示来自所有三种语言的示例.接下来,观看此网络广播:使用Visual Basic for Applications(VBA)每天比您想象的更容易.

第三,MSDN,请阅读:Word 2010中的VBA入门.其中99%适用于Word 2007.此处还有许多其他文章链接,或者您可以随时转到Office VBA开发人员中心的主页作为单个跳转页面.

然后可能是开始直接编程的时候了.了解事物的运作方式,学习Word的对象模型等.您可以随时在word-vba标签下浏览SO ,看看其他人正在尝试做什么和答案.


Def*_*ult 2

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

Sub Hello()
    MsgBox "Hello World"
End Sub
Run Code Online (Sandbox Code Playgroud)

当您标记了子项后,按F5(运行)。

在对象浏览器中,您将拥有三个不同的对象、属性、函数和事件。当您看到引起您兴趣的内容时,请转到单词 vba 的参考并找到它。
[如果链接发生更改,您可以在 MSDN Library > Office 开发 > 2007 Microsoft Office System > Word 2007 > Word 2007 开发人员参考 > Word 对象模型参考下的树中找到它]

我认为最简单的事情就是定义一个需要解决的问题并尝试对其进行编程,类似于学习任何其他语言。不要让问题变得简单,但也不要让问题变得困难而放弃。