Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Word 2007中,从哪里开始使用VBA和宏编程?_Vba_Ms Word_Powerpoint - Fatal编程技术网

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

在Word 2007中,从哪里开始使用VBA和宏编程?,vba,ms-word,powerpoint,Vba,Ms Word,Powerpoint,我刚知道Word/Excel/PowerPoint中的宏可以编程。这太棒了,因为我有一个Word文档,其中有70个表格用于样式设置 我是一名程序员,但我不懂VB、VBA或VB.NET。我对这三个感到困惑。我熟悉使用C#的.NET编程。现在我想写新的宏。我应该从哪里开始?什么是VB、VBA、VB.NET?我应该学习哪一种?请推荐一些材料 如果我学习Word 2007,这对其他Office应用程序life Excel和PowerPoint有帮助吗?你一直都有。 如果您转到Microsoft Word

我刚知道Word/Excel/PowerPoint中的宏可以编程。这太棒了,因为我有一个Word文档,其中有70个表格用于样式设置

我是一名程序员,但我不懂VB、VBA或VB.NET。我对这三个感到困惑。我熟悉使用C#的.NET编程。现在我想写新的宏。我应该从哪里开始?什么是VB、VBA、VB.NET?我应该学习哪一种?请推荐一些材料

如果我学习Word 2007,这对其他Office应用程序life Excel和PowerPoint有帮助吗?

你一直都有。
如果您转到Microsoft Word>Developer>Visual Basic并在左侧菜单中打开此文档,您将拥有编辑器。如果按F2,您将获得可在Microsoft Word(对象浏览器)中使用的库。最简单的程序如下所示:

Sub Hello()
    MsgBox "Hello World"
End Sub
当您有子标记时,按F5(运行)

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


我认为最简单的方法是定义一个你需要解决的问题,并尝试对它进行编程,就像学习其他语言一样。不要让问题变得容易,但不要让问题变得难,否则你会放弃。

以下是不同视觉基础的简要说明:

  • Visual Basic 6(VB6或经典VB)
    • 大约在1998年发布,这是微软最初的“Visual Basic”的最后一次迭代。它有面向对象开发的开端,但它需要Visual Basic运行时才能运行应用程序。许多公司已经将VB6用于内部业务应用程序。它被VB.NET和.NET框架所取代
  • Visual Basic for Applications(VBA)
    • VBA与VB6共享相同的代码库,并且在1996年,允许开发人员将其包含在自己的应用程序中。这就是VBA在Microsoft Office中的表现,它是一种嵌入式语言,可用于控制Office的各种应用程序。重要的是要记住,VBA仍然用于编写office应用程序,它已经有十多年的历史了,当人们习惯于使用.NET时,可能会有这样的感觉
  • Visual Basic.NET(VB.NET)
    • NET与VB6完全不同。尽管许多开发人员已按顺序引用了VB.NET的后续迭代(例如VB7、VB8等),但VB.NET与VB6和VBA之间除了基本语法之外几乎没有什么共同之处。许多人认为它更多地是一种新的进化,而不是VisualBasic中的进化。因为它与VBA和VB6完全不同,所以不能在VBA中直接使用VB.NET代码
    • 由于VB.NET代码编译为与C#相同的托管中间语言代码,并共享相同的.NET API,因此从编程角度来看,您可能会觉得C#和VB.NET之间比VB6和VB.NET之间有更多的共性
如果您希望在VBA中进行大量开发,我强烈推荐Getz和Gilbert的

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


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

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

首先,如果您的环境支持,您可以使用VisualStudio2005/8/10和您的C#技能,使用“VisualStudioToolsforOffice”针对Office编程。有关更多详细信息,请参见此

如果您想深入研究VBA(我个人喜欢VBA,因为它的开发速度比VS快),请从这篇文章开始,它将向您展示所有三种语言的示例。接下来,观看此网络广播:

第三,MSDN,通读以下内容:。其中99%适用于Word 2007。还有许多其他文章与此链接,或者您可以始终以单个跳转页面的形式转到的主页


然后可能是时候开始直接编程了。查看工作原理、学习Word等。您可以随时在标签下浏览,查看其他人正在尝试做什么以及答案。

+1良好的链接。您似乎对VisualBasic很熟悉。你对此有什么建议吗@迈克尔:谢谢。不幸的是,我不知道如何在这一个转换-我一直希望自己的VB转换,这将是难以置信的帮助。有一天我会花时间写一些东西(并张贴在那里)呵呵。无论如何,谢谢你:)