两者的区别是什么?我一直认为VBA是VB的“残缺”版本,但当一个朋友前几天问我,我不知道实际的区别是什么。
另外,当你使用Excel时,你用的是VB还是VBA ?
两者的区别是什么?我一直认为VBA是VB的“残缺”版本,但当一个朋友前几天问我,我不知道实际的区别是什么。
另外,当你使用Excel时,你用的是VB还是VBA ?
当前回答
实际上VBA可以用来编译dll。 Office 2000和Office XP Developer版本包括了一个VBA编辑器,可以用来制作dll作为COM插件使用。
随着VSTO (VS Tools for Office)软件的出现,这个功能在后来的版本(2003年和2007年)中被删除了,尽管很明显,你仍然可以使用VB6 IDE在不使用VSTO(或VS.Net)的情况下以类似的方式创建COM插件。
其他回答
VBA。VBA的意思是Visual Basic for Applications,它用于Office文档中的宏。它不能访问VB。NET特性,所以它更像是一个VB6的修改版本,附加组件能够在文档上工作(就像VBA中的Excel工作表)。
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
VB (Visual Basic only up to 6.0) is a superset of VBA (Visual Basic for Applications). I know that others have sort of eluded to this but my understanding is that the semantics (i.e. the vocabulary) of VBA is included in VB6 (except for objects specific to Office products), therefore, VBA is a subset of VB6. The syntax (i.e. the order in which the words are written) is exactly the same in VBA as it would be in VB6, but the difference is the objects available to VBA or VB6 are different because they have different purposes. Specifically VBA's purpose is to programatically automate tasks that can be done in MS Office, whereas VB6's purpose is to create standard EXE, ActiveX Controls, ActiveX DLLs and ActiveX EXEs which can either work stand alone or in other programs such as MS Office or Windows.
你想比较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可以用来编译dll。 Office 2000和Office XP Developer版本包括了一个VBA编辑器,可以用来制作dll作为COM插件使用。
随着VSTO (VS Tools for Office)软件的出现,这个功能在后来的版本(2003年和2007年)中被删除了,尽管很明显,你仍然可以使用VB6 IDE在不使用VSTO(或VS.Net)的情况下以类似的方式创建COM插件。