VB VBA VBS 到底有什么区别?
VB VBA VBS 到底有什么区别?
VB:Visual Basic
VBA:Visual Basic for Application
VBS:Visual Basic Script
注意:以下文章非本站原创,出处也无法考究
首先VBS不应该和VB、VBA放在一起比较,它是微软按照自己定义的ActiveX Scripting规范完全从头开始写成的脚本语言,虽然它的语法结构和VB非常相似,但VBS仅仅依靠自动化对象来扩充其功能(只有后期绑定),它不能用implements来实现接口,不可能在VBS里直接使用API,没有VarPtr这样能得到指针的函数,而VBS缺少的这些功能正是VB和VBA所特有的。当然,这不是说VBS不如VB或VBA,Windows已经为VBS提供了足够强大的功能,我们可以用VBS来做脚本COM组件,而且借自动化对象的能力VBS可以说能力无限,所以有病毒用VBS来写,对程序员来说VBS最重要的功能莫过于可以给自己的软件提供宏功能,就象VC中提供的VBS宏功能那样。注意,VBS是Free的,这和在Office中使用VBA来提供宏功能不同,要集成VBA需要价格不低的许可证费用,关于脚本语言可参见MSDN中Platform SDKTools and LanguagesScripting
从功能上来说,VBA与VB几乎完全一样,或者说VBA是VB的一个子集。但它们之间更本质的区别在于VBA没有自己独立的工作环境,而必须依附于主应用程序;而VB则不依附于任何其它的应用程序,具有完全独立的工作环境和编译、连接系统。
由于VBA依附于主应用程序,因此它与主应用程序之间的通信简单而富有效率,其代码完全是在进程内执行的
以下用实例来解释VB和VBA有什么不同吧
如果装了Office 2000以上版本,那么打开OLEVIEW,点击File下的View TypeLib查看位于E:Program FilesCommon FilesMicrosoft SharedVBAVBA6下的VBE6.dll的类型库,再用同样的方法看看MSVBVM60.dll的类型库,你会发现它们的类型库基本上一模一样,除了VBE6多了一个VBEGlobal接口和实现这个接口的Global对象,这个Global对象我们也可以在VBA编程环境(比如用WORD的VB编辑器)中用对象浏览器看到。它有二个方法Load和UnLoad,还有一个UserForms属性,这是因为VBA6使用MS Form 2.0 Form设计器(FM20.dll)来设计和使用UserForm窗体(而在VB6中,我们可以使用多个设计器。比如通过使用MS Form 2.0 Form设计器,我们就能在VB中使用VBA所使用的UserForm用户窗体)。
以上就是VB VBA VBS 到底有什么区别?的全部内容,望能这篇VB VBA VBS 到底有什么区别?可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。









