读书频道 > 网站 > 网页设计 > Excel专业开发(第2版)
2.1.3 通用加载宏
13-01-23    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > Excel专业开发(第2版)

本书基于Excel 2003及之后的版本和VSTO.NET 2008开发平台介绍了Excel专业应用程序开发的各种方法和技术,其内容相对第一版有较大的调整和更新。主要包括Excel各类应用程序的结构和开发方法;Excel应用程序的工...立即去当当网订购
加载宏是一类特殊的程序,常用于为Excel添加可选的命令和功能。加载宏中的工作表对使用者来说是不可见的,因此用户不会与工作簿直接进行交互。加载宏通过向菜单、工具栏或功能区中添加新项,关联组合键,捕捉Excel事件,和/或提供一些在工作表中可用的函数来向用户提供其他工作簿访问其内部程序的方法。即使加载宏并未出现在可用宏列表中,也可以通过直接单击菜单项“工具>宏>宏”,在弹出的“宏”对话框中输入其VBA过程的全名(如 MyAddin.xla!MyProcedure)来调用。

从Excel的用户角度来看,宏程序总是可用的,特别适合用于设计可供其他所有文件所使用的公共函数。

一般情况下,常通过ActiveWorkbook、ActiveSheet或Selection等对象来识别宏当前所处理的对象。

另外,在设计程序时,开发人员常需要仔细考虑如何处理各种可能发生的“用户错误”,而通过宏程序进行“用户错误”处理是一种较好的方式,即根据不同的“用户错误”,调用不同的宏程序进行处理。例如,更改选定单元格中的内容时,可用宏程序先检查并确保该单元格存在、未被锁定且未加载公式。同样,当通过程序在活动工作表中加载一些自定义的格式时,可用宏程序先检查操作的对象是否确实是一个工作表(不能是图表或宏表),而且是活动工作表(防止工作簿文件未被打开)并未实施各种保护。

当加载宏存在于一个隐藏的工作簿中时,它在工作簿的列表和VBA的Workbooks集合中均是不可见的。然而,此时的加载宏其实就像在其他方法中所使用的工作表一样,对Excel/VBA的中级开发者来说是非常易于掌握和维护的。事实上,只需在VBE属性窗口中将ThisWorkbook对象的IsAddin属性设置为True或False,就能方便地控制加载宏工作簿的行为与加载宏或普通工作簿一样。

由于用户不能直接操作加载宏中的工作表,因此所有的用户操作只能通过用户界面来完成(尽管调用VBA中的InputBox和MsgBox函数非常简单)。通过用户界面,开发人员能很好地控制用户的输入,进行数据有效性检验和各种用户错误处理,为开发出具有良好健壮性和稳定性的程序提供了必要的保证。

当加载宏需要存储信息时,例如存储用户在用户界面中最近设置的选项信息,可将这些信息存储于注册表中(利用SaveSetting/GetSetting函数完成),也可存储于独立的文件中,如INI文件。这样的处理方式可有效地实现存储信息与加载宏的分离。终端用户在对加载宏升级时,可直接覆盖原有加载宏而不会对数据信息有任何影响。

若终端用户能够正确地安装加载宏,那么整个应用程序的配置就非常容易实现,以下方式均可方便地完成配置:(1)直接将带有操作命令的XLA文件拷贝到库文件目录中;(2)单击“工具>加载宏…”菜单项,在弹出的对话框中选择“浏览”按钮,然后选择相应的宏文件,最后单击“确定”按钮;(3)通过安装程序更改Excel中与维护和使用加载宏相关的注册表信息,然后再次启动Excel程序。有关注册表信息的详细讨论请参看本书第29章“联机帮助、加密、打包和发布”。

通用加载宏的结构

大多数通用加载宏使用相同的基本结构,常用的处理步骤如下:

在Auto_Open或Workbook_Open事件中进行编码,添加调用加载宏的菜单项,并建立相应的键盘映射。每个菜单项通过自身的OnAction属性来调用加载宏文件中对应的处理程序。

为每个菜单项分配存放在标准模块中的对应宏程序。

(选择性地)将公共函数存放在标准模块中,供工作表进行公式计算时使用。

在Auto_Close或Workbook_Close事件中进行编码,清除与宏相关的菜单项和键盘映射。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站