我刚刚才知道Word/Excel/PowerPoint中的宏可以编程。这太棒了,因为我有一个包含70个表格的Word文档。从哪里开始使用Word 2007中的VBA和宏编程?
我是一名程序员,但我不知道VB,VBA或VB .NET。我很困惑这三个。我熟悉使用C#编写.NET程序。现在我想写新的宏。我应该从哪里开始?什么是VB,VBA,VB.NET以及我应该学习哪一个?请建议一些材料。
如果我学习的Word 2007将帮助与其他Office应用程序生活Excel & PowerPoint?
我刚刚才知道Word/Excel/PowerPoint中的宏可以编程。这太棒了,因为我有一个包含70个表格的Word文档。从哪里开始使用Word 2007中的VBA和宏编程?
我是一名程序员,但我不知道VB,VBA或VB .NET。我很困惑这三个。我熟悉使用C#编写.NET程序。现在我想写新的宏。我应该从哪里开始?什么是VB,VBA,VB.NET以及我应该学习哪一个?请建议一些材料。
如果我学习的Word 2007将帮助与其他Office应用程序生活Excel & PowerPoint?
您始终有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对象模型参考
我认为最简单的要做的事情是定义一个需要修复的问题,并尝试对它编程,类似于学习任何其他语言。不要让问题变得简单,但不要放弃。
这里有不同的视觉基础知识的简要说明:
如果预期做了很多发展的VBA,我会强烈建议VBA Developer's Handbook, Second Edition,由盖茨和吉尔伯特。
学习Word的VBA语法无疑会在你使用Excel,Access等时为你提供帮助。但是,每个应用程序都有自己的API,它提供了一组对其域唯一的对象和方法。例如,我对Excel和Access中的VBA编程非常熟悉,但我从未在Word中完成宏编程。虽然代码语法是相同的,但我必须学习Word的API才能够对其进行编程。
有关Office应用程序(例如Excel)的好处是您可以录制宏,查看它生成的代码,然后调整该代码以执行所需操作。这很大程度上是我开始编程的。
这里有一些很好的答案 - 我想提供一个更一套建议:
首先,如果支持你的环境,你可以使用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良好的联系。你似乎知道你围绕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
@迈克尔:谢谢。不幸的是,我不知道这种转换方式 - 尽管我一直想自己做一个to-VB转换,但它会非常有帮助。 – 2010-07-11 15:37:22
有一天,我会花时间写一些东西(并张贴在那里)嘿嘿。不管怎么说,多谢拉 :) – Default 2010-07-11 19:30:34