开发集成Microsoft Visual Basic for Application的应用系统(一)
开发集成Microsoft Visual Basic for Application的应用系统(一)
Microsoft Visual Basic for Application(以下简记为VBA)是Microsoft Office的核心组件之一,作为一个嵌入式二次开发引擎,VBA被集成到许多著名的大型软件系统之中(例如:AutoCAD 2002、Core Draw等),集成VBA的一个重要原因是类似Microsoft Office类型的商业软件取得巨大的成功,一个众所周知的事实是Word, Excel,PowerPoint,以及其他Office程序共享一个公共的二次开发环境,即VBA。本文介绍VBA集成的基本概念,在后续的文章中将陆续介绍如何在你的应用程序中集成VBA的基本技术。
Microsoft VBA建立在COM技术基础之上,如果你打算让你的应用系统支持宏语言或描述语言,以便你的客户可以充分定制化你的应用系统,或可以进行深度的二次开发,集成VBA是一种聪明的选择,通过集成VBA,你的系统可以与Microsoft Office共享同一个二次开发环境。VBA在语言级别上等价于VB 6.0,在运行机制上,VBA是以伪代码(Microsoft P-Code)形式运行,VB6可以编译为机器码(依赖于VB运行时库),除编译的差别外,二者最大的差异是所支持的Form库,VBA的Form来自Fm20.dll,本质上这类Form是一种特殊类型的ActiveDesigner(一种类似于VB6集成的报表设计器类型的可编程对象)。
(集成在用户系统中的VBA环境)
VBA的基本想法是,将程序对象映射为对应的VBA对象,基本的VBA对象有以下几种:
1、 VBA工程:在集成VBA的应用系统中,VBA工程有两个重要角色,一、VBA工程是VBA可编程对象的容器(所有可编程对象的集合),二、VBA工程是实现VBA对象存储的基础。
2、 VBA可编程项:是一个特定程序对象在VBA环境中的对应对象,首先这类对象必须是一个COM对象(必须支持事件),其次这个对象必须完成特定的程序功能。例如:你可以将一个特定的MFC对象实现为一个VBA可编程项,如第一图中Normal工程中的的TestView。可编程项仅有一个运行时事例。
3、 VBA可编程类:是一个特定程序对象在VBA环境中的对应对象,首先这类对象必须是一个COM对象(必须支持事件),其次这个对象必须完成特定的程序功能。例如:你可以将一个特定的MFC多文档子窗口对象实现为一个VBA可编程类,可编程项可以有多个运行时事例。
4、 VBA可编程控件:VBA可编程项的子对象。
5、 ActiveDesigner:一种特殊的VBA工程项,可以有可是化的设计机制,一个典型的例子是VBA中的Form,下图显示一个用户开发的ActiveDesigner:
(ActiveDesigner在编程环境中的应用)
VBA对象结构图如下:
一个集成VBA系统的应用程序:
(未完待续,如果你有兴趣在你的系统中集成VBA技术,请与本人联系,我的e-mail: sunhuizlz@yeah.net)
- · 形形色色的自定义消息(下)
- · C++中的预处理(上)
- · 非常时期突现网络办公的魅力!
- · asp_dll
- · 学Java,观GP
- · 怎样写一个 NT 服务程序
- · 代码优化试验——短循环优化(上)
- · 代码优化试验——短循环优化(下)
- · =========<C++未眠夜---我学习C++的心路历程>========
- · BOOK
- · 读《Efficient C++》疑惑
- · C++中的预处理(下)
- · DSP v1.0--序列化和反序列化对象和DNS v1.0--得到域的邮件服务器
- · C++入门解惑(0)——序
- · 代码自动完成、文档自动生成、提高开发效率----介绍VcExtend
- · “瑜珈山夜话”---序
- · C++入门解惑(1)——浅析cout
- · VC6使用#pragma warning的一点经验
- · 如何在一个容器中放入不同对象(续)
- · “瑜珈山夜话” ----内存分配(一)
- · 最简单的屏幕拷贝程序(象素拷贝)
- · vc入门宝典(十)
- · Win32学习笔记 第六章 程序6-3 Typer 说明
- · 自动建库的安装程序制作方法
- · “瑜珈山夜话” ----内存分配(二)
- · 让Windows 2000/XP中的任意窗口透明起来
- · 不比不知道,一比吓一跳!
- · “瑜珈山夜话” ----内存分配(三)
- · WTL体系结构(3)
- · 控制台程序的事件處理
- · 深入DCOM之DCOM的发展史
- · Windows程序效率
- · C++入门解惑(2)——初探指针(上)
- · 读好文章,快速理解COM组件知识,10分钟深刻阅读,获得超过2000元的培训
- · WTL的消息机制
- · DirectShow应用——支持DVD播放
- · 浏览器集成教学 自定义浏览器
- · 计算机科学与技术学生学习基础材料参考
