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

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


当前回答

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-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的缩写,所以它是VB的“for Applications”脚本兄弟。 VBA确实可以在Excel中使用,但也可以在其他办公应用中使用。

使用VB,可以创建一个独立的windows应用程序,这是VBA无法做到的。

但是,开发人员可以将VBA“嵌入”到他们自己的应用程序中,作为一种脚本语言来自动化这些应用程序。

编辑:从VBA常见问题:

问:什么是Visual Basic for Applications? A. Microsoft Visual Basic for Applications (VBA)是一个嵌入式编程环境,旨在使开发人员能够使用Microsoft Visual Basic的全部功能构建自定义解决方案。使用承载VBA的应用程序的开发人员可以自动化并扩展应用程序功能,从而缩短自定义业务解决方案的开发周期。

注意VB。NET甚至是另一种语言,它只与VB共享语法。

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可以用来编译dll。 Office 2000和Office XP Developer版本包括了一个VBA编辑器,可以用来制作dll作为COM插件使用。

随着VSTO (VS Tools for Office)软件的出现,这个功能在后来的版本(2003年和2007年)中被删除了,尽管很明显,你仍然可以使用VB6 IDE在不使用VSTO(或VS.Net)的情况下以类似的方式创建COM插件。

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

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