两者的区别是什么?我一直认为VBA是VB的“残缺”版本,但当一个朋友前几天问我,我不知道实际的区别是什么。

另外,当你使用Excel时,你用的是VB还是VBA ?


当前回答

对于几乎所有的编程目的,VBA和VB 6.0是一样的东西。

VBA无法将程序编译成可执行二进制文件。你总是需要主机(例如,一个Word文件和MS Word)来包含和执行你的项目。你也不能用VBA创建COM dll。

除此之外,在IDE上还有一个不同之处——相比之下,VB 6.0 IDE更强大。另一方面,您可以在VBA中紧密集成主机应用程序。应用程序全局对象(如“ActiveDocument”)和事件无需声明即可使用,因此特定于应用程序的编程非常简单。

不过,没有什么能阻止你启动Word,加载VBA IDE并解决一个与Word无关的问题。我不确定VB 6.0能做什么(技术上),而VBA不能。不过,我正在寻找MSDN上的比较表。

其他回答

VB不是一种语言。VB是一个承载VBA的程序,就像Office承载VBA一样。VB是一组App对象,就像Word和Excel一样,还有一个表单包,就像Office一样。

所以你只能在VB中编写VBA代码。

PS这个信息在VB问题页面的info选项卡上。

来自VBA信息

VBA 6于1998年发布,包含大量授权主机,其中包括:Office 2000 - 2010、AutoCAD、PI Processbook和独立的Visual Basic 6.0

对于几乎所有的编程目的,VBA和VB 6.0是一样的东西。

VBA无法将程序编译成可执行二进制文件。你总是需要主机(例如,一个Word文件和MS Word)来包含和执行你的项目。你也不能用VBA创建COM dll。

除此之外,在IDE上还有一个不同之处——相比之下,VB 6.0 IDE更强大。另一方面,您可以在VBA中紧密集成主机应用程序。应用程序全局对象(如“ActiveDocument”)和事件无需声明即可使用,因此特定于应用程序的编程非常简单。

不过,没有什么能阻止你启动Word,加载VBA IDE并解决一个与Word无关的问题。我不确定VB 6.0能做什么(技术上),而VBA不能。不过,我正在寻找MSDN上的比较表。

VBA。VBA的意思是Visual Basic for Applications,它用于Office文档中的宏。它不能访问VB。NET特性,所以它更像是一个VB6的修改版本,附加组件能够在文档上工作(就像VBA中的Excel工作表)。

你想比较VBA与VB-Classic (VB6..)或VB.NET?

VBA (Visual Basic for Applications)是嵌入在Microsoft Office应用程序中的基于vb-classic的脚本语言。我认为它的语言特性与VB5类似(它只是缺少一些内置函数),但是:

您可以访问您为其编写vba脚本的办公文档,因此您可以例如。

编写宏(=用于办公室工作中重复性小任务的自动化例程) 为excel-cell-formula定义新函数 处理办公数据

示例:设置excel-cell的值

ActiveSheet.Cells("A1").Value = "Foo"

VBC和-。NET不是脚本语言。你可以使用它们在独立的IDE中编写独立的应用程序,这是VBA无法做到的(VBA脚本只是“存在”在Office中)

VBA和VB没有任何关系。NET(它们只是有相似的语法)。

VBA是Visual Basic for Applications的缩写,它是一种用于Office Suite的Visual Basic实现。

它们之间的区别是VBA嵌入在Office文档中(这是Office的一个特性)。VB是开发应用程序的ide/语言。