Visual Basic 6.0与VBA的区别

Visual Basic 6.0与VBA的区别,vba,vb6,Vba,Vb6,两者的区别是什么。我一直认为VBA是有点“残废”的VB版本,但前几天当一个朋友问我时,我不知道实际的区别是什么 此外,当您使用Excel时,它是VB还是VBA?它是VBA。VBA的意思是,它用于Office文档上的宏。它没有访问VB.NET功能的权限,因此它更像是VB6的修改版本,带有能够处理文档的附加组件(如VBA for Excel中的工作表)。VBA代表Visual Basic for Applications,它是一种用于Office套件的Visual Basic实现 它们之间的区别在于

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


此外,当您使用Excel时,它是VB还是VBA?

它是VBA。VBA的意思是,它用于Office文档上的宏。它没有访问VB.NET功能的权限,因此它更像是VB6的修改版本,带有能够处理文档的附加组件(如VBA for Excel中的工作表)。

VBA代表Visual Basic for Applications,它是一种用于Office套件的Visual Basic实现

它们之间的区别在于VBA嵌入到Office文档中(它是一种Office功能)。VB是开发应用程序的ide/语言。

VBA代表,VB的“应用程序”脚本兄弟也是如此。 VBA确实可以在Excel中使用,但也可以在其他office应用程序中使用

使用VB,可以创建一个独立的windows应用程序,而使用VBA是不可能的

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

编辑:从:

Q.什么是Visual Basic for Applications

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


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

是否要将VBA与VB Classic(VB6..)或VB.NET进行比较

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

您可以访问为其编写VBA脚本的office文档,因此您可以

  • 编写宏(=在办公室工作中执行小任务的自动例程)
  • 为excel单元格公式定义新函数
  • 处理办公室数据
示例:设置excel单元格的值

ActiveSheet.Cells("A1").Value = "Foo"
VBC和-.NET不是脚本语言。您可以使用它们编写具有独立IDE的独立应用程序,而这是VBA所无法做到的(VBA脚本只是“存在”于Office中)


VBA与VB.NET无关(它们只是具有相似的语法)。

对于几乎所有编程目的,VBA和VB6.0都是一样的

VBA无法将程序编译成可执行二进制文件。您始终需要主机(例如Word文件和MS Word)来包含和执行项目。您也将无法使用VBA创建COM DLL

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


不过,没有什么能阻止您启动Word、加载VBA IDE和解决与Word无关的问题。我不确定VB6.0是否可以(技术上)做任何事情,VBA也不能。我正在寻找MSDN上的比较表。

实际上VBA可以用来编译DLL。 Office 2000和Office XP Developer版本包括一个VBA编辑器,可用于制作DLL以用作COM加载项


随着VSTO(VS Tools for Office)软件的出现,此功能在更高版本(2003和2007)中被删除,不过显然,您仍然可以以类似的方式创建COM加载项,而无需使用VSTO(或VS.Net)通过使用VB6 IDE。

这里是对一个老问题的一个更技术、更彻底的回答:Visual Basic for Applications(VBA)和Visual Basic(pre-.NET)不仅仅是相似的语言,它们是相同的语言。具体而言:

  • 它们具有相同的规范:语言包含的内容及其含义的独立于实现的描述。你可以在这里阅读:
  • 它们具有相同的平台:它们都编译到,然后由完全相同的虚拟机执行,该虚拟机在dll msvbvm[x.0].dll中实现
在过去的一年中,作者(Paul Lomax)甚至断言“VBA”一直是语言本身的名称,无论是在独立应用程序中还是在嵌入式环境(如MS Office)中使用:

“在进一步讨论之前,让我们先澄清一下基本要点。Visual Basic for Applications(VBA)是用于在Visual Basic(VB)中编程的语言。VB本身就是一个开发环境;该环境的语言元素是VBA。”

细微差别

托管vs.单机版:实际上,当大多数人说“VBA”时,他们特别指“在MS Office中使用VBA”,他们说“VB6”是指“在独立VBA编译器(即Visual Studio 6)的最新版本中使用的VBA”。与MS Office捆绑在一起的IDE和编译器几乎与Visual Studio 6相同,只是它不允许编译独立的dll或exe文件。这反过来意味着嵌入式VBA项目中定义的类无法从非嵌入式COM使用者访问,因为它们无法注册

继续开发:Microsoft停止使用Visual Studio 6生产独立的VBA编译器,因为他们将.NET运行时作为首选平台。然而,MS Office团队继续维护VBA,甚至发布了一个新版本(VBA7)和一个新的VM(现在刚刚调用)