Microsoft Visual Basic for Application技术概要

 
Microsoft Visual Basic for Application 技术概要
         众所周知,Visual Basic系列产品在Microsoft的产品线中占有非常独特的位置,从IE,到Office,乃至Visual Studio系列产品中总要配备一个基于Visual Basic的描述引擎以便进行功能扩展。Microsoft Visual Basic for Application是Microsoft Macro 语言技术,作为Office系列产品的重要组成部分,在Office套件中几乎绝大多数产品都集成了这个语言引擎。在海外软件中许多公司的重要产品也都集成了这个组件,形成了一个庞大的软件链,关于其他国外公司应用VBA引擎的信息,请访问 http://www.summsoft.com,http://vba.summsoft.com/customers/中给出了大多数与Microsoft签订VBA集成协议的软件公司清单。1999年4月,Microsoft发行Visual Basic for Application 6.0 SDK,这个SDK的发布,标志着VBA集成技术走向成熟,最新的Office 2007集成了VBA 6.5。由于早期工作的需要以及个人的兴趣,1999年6月我申请了VBA SDK,VBA SDK是免费的,可以通过 http://www.summsoft.com申请,但基于VBA SDK的产品发布时需要与Microsoft签订商业许可合同。
         如果深入考察Visual Basic for Application,我们发现Visual Basic for Application与Visual Basic Script差别极大,但十分接近Visual Basic 6.0,事实上,在语言级别上,Visual Basic for Application与VB6是等价的。按照Microsoft的软件逻辑,如果一个特定的应用系统可以集成VBA,那么这个应用系统基本就是一个“开发环境”,如图:
显示一个集成在特定软件中的VBA IDE。当一个应用系统的对象模型与VBA语言彻底集成后,如上显示的VBA IDE就会充分发挥IDE的编程能力,因此,当开发定制化要求很高的大、中型软件应用时,集成VBA引擎不失为一种有竞争力的考虑。
         对C++开发者而言,集成VBA的工作不是一件轻松的工作,需要开发者具备熟练的驾驭MFC/ATL类库的能力。从概念上看,VBA集成框架与常规的MFC/ATL应用框架存在许多差异,磨合这些差异是实现VBA集成的关键;从代码结构上看,基于VBA的代码框架在形式上对开发者而言或多或少存在一些“障碍”,这种障碍客观上提高了入门的门槛。
         如果你打算开发带有VBA引擎的软件系统,几个围绕VBA的基本概念是必须掌握的,最重要的概念是1、VBA工程;2、VBA可编程项;3、VBA可编程类;4、VBA APC控件,对高级开发者而言,还有一个非常重要、强大的概念,即:ActiveX Designer,集成在VB环境内的Form设计器、报表设计器就属于ActiveX Designer范畴。
         VBA工程,按照Microsoft的构思,一个VBA工程是若干可编程项、可编程类、VBA类模块、代码模块等的集合体,如图所示:
我们看到“VBAProject2”即代表一个VBA工程,这个工程对应的软件对象就是如下图的文档“TangramDoc Demo 3 1”。
在本文的后续文章中,我们将探讨如何在你的软件里集成VBA技术。
 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
谈到宏,很多人想到的是宏病毒,其实如果有正版杀毒软件,打开了实时防护,设置好宏安全性,可以利用宏来完成许多办公自动化功能。   打开word软件,从文件主菜单中“工具”->“宏”->“安全性”,设置安全性为中,这样就可以选择执行宏。安装office的时候,应该定制安装,在“office 工具”里选上“Visual Basic帮助”,这样就能获得非常完善的关于VBA编程环境、VBA语言参考、VBA对象等的帮助文档。从“工具”->“宏”->“Visual Basic 编辑器”可以打开VBA编程环境——“Microsoft Visual Basic”。在编程环境中打开“帮助”->“Microsoft Visual Basic帮助”,就可以看到帮助了。   很多人觉得学习Visual Basic没有用,事实上,Visual Basic系列的编程语言包括VB、VBA、VBScript等,可以写网页、办公自动化编程、应用编程。在一些其他公司的应用软件中也是可以用VBA的,例如Corel Draw。这里举几个例子来说明VBA的使用。   如果有数十个文档需要合并为一个文档,逐个打开、拷贝是件麻烦事,可以用宏来完成。 例一:合并文档。新建一个窗体,窗体上放一个按钮。工具箱可以从“视图”->“工具箱”打开。 '按钮事件 Private Sub CommandButton1_Click() Dim sPath As String 'sPath用来保存路径 Dim tem As String '中间变量 Set newDoc = Documents.Add '用Documents.Add增加一个新文档 With newDoc .SaveAs FileName:="D:/txtal.doc" '新文档保存的完整路径 End With ActiveDocument.close '关闭新建的文档 With Dialogs(wdDialogFileFind) '设置文本查找对话框 .SortBy = 2 '文件按名称排列 .SearchName = "*.txt" '只列出文本文件 .Update '更新 End With If Dialogs(wdDialogFileFind).Show = -1 Then '如果按下打开,就执行 sPath = Dialogs(wdDialogFileFind).SearchPath '将查找对话框打开的路径附值给SPath Dialogs(wdDialogFileFind).Execute Else Exit Sub '如果取消或者关闭,就退出 End If With Application.FileSearch '设置应用程序的查找 .NewSearch '新查找 .LookIn = sPath '将新查找的路径设置为文件对话框的路径(sPath) .SearchSubFolders = True '查找子目录 .FileType = msoFileTypeAllFiles '查找所有文件类型,这里可以设置其他类型,具体见FileSearch对象的FileType属性 .FileName = "*.txt" '查找后缀为txt的文件 .Execute '执行文件查找 Documents.Open ("D:/txtal.doc") '打开"D:/txtal.doc" Set Range2 = ActiveDocument.Content '设置Range2对象为活动文档的内容 For i = 1 To .FoundFiles.Count '把找到的文件打开,拷贝文件内容,加到新建的D:/txtal.doc文件中 Documents.Open (.FoundFiles(i)) '打开第i个找到的文件 ActiveDocument.Content.Select '全选活动文件的内容 Selection.Copy '拷贝选中的内容 ActiveDocument.Close '关闭活动文档 Range2.Collapse Direction:=wdColla
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值