Excel VBA程序开发自学宝典(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-05-16 22:29:37

点击下载

作者:罗刚君

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Excel VBA程序开发自学宝典(第2版)

Excel VBA程序开发自学宝典(第2版)试读:

一本值得珍藏的工具书

VBA的概念源自于1987年Bill Gates在BYTES杂志上的理想——应用程序自动化,但具体实现却是在十年后的Office 97。直到现在,不论是最简单的自定义函数,还是设计各种复杂的企业自动化应用,VBA已经出现在许多企业应用的案例中。VBA不仅成为统一的Office自动化工具,同时也是目前世界上使用最多的一种编程语言。

随着企业信息化进程的发展,现在已经有越来越多的财务或市场销售人员关注到企业报表数据自动化的重要性与迫切性。尽管VBA的基础入门书籍有很多,就技术层面来说,针对高级用户的学习材料相对较少。过去VBA的爱好者需要访问Deja News这类网络资源,才能看到一些实战经验和技巧,虽然后来有了Google搜索引擎的协助,但可惜大多不够细化,也缺乏专业人士的系统性整理、分类,不利于读者消化、吸收及应用到实际工作中。

当第一次看到《Excel VBA程序开发自学宝典》时,我发现这正是市场需要的学习参考材料。目前市场上有关VBA的书籍大致分成两类:一类是专注在基础的介绍,包括环境和语法;第二类则是讲解实际应用设计案例,而这本书则是从入门到高级,汇集了上述两类书籍的精华。其中关于功能区(Ribbon)的开发教学更是具有极其重要的参考价值。

基于精益求精的原则,也为拓展读者的知识层面,作者在这本《Excel VBA程序开发自学宝典(第2版)》中增加了一些新的实用知识,它们是正则表达式、字典、功能区应用及封装代码等,这使得本书的知识层面更深、应用更广,同时弥补了第1版的不足之处。

这本书和其他书籍不同的地方,不仅在于它包罗万象,同时很多重要的观念也都通过实例进行了讲解。一如作者在前言所述,本书分成了入门篇、进阶篇、登堂篇、入室篇和攀峰篇几个部分,如果是已经有经验的VBA读者,不妨直接跳到第17章和第18章,可以了解作者在自学方面的付出和努力。

您不需要一口气读完二三十章的内容,而是将它视为一本重要的参考手册,当遇到不熟悉的新议题时,可以翻阅目录找到对应的章节。这样,这本书就可以将读者的VBA应用水平提高到一个新的层次。它不仅仅是以实例作为引导的入门书,也会成为面面俱到的工具书。企业信息化管理战略顾问郭安定(台湾)

如何学习VBA

VBA是什么

Excel VBA是依附在Excel中的二次开发语言,全称为“Visual Basic For Application”。VBA已有20年历史,目前最新版本是7.0,其开发环境和语法已趋于完善。

VBA不仅是Excel的二次开发平台,同时还大量应用在其他软件中,包括机械设计软件AutoCAD、平面设计与排版软件CorelDraw、办公排版软件Word、网页设计软件FrontPage、项目管理软件Project、国产Office WPS等,VBA的应用前景相当广阔。学VBA有用吗

这是很多网友问过的问题,其实答案只有一个——任何软件都有用,只看您学到什么程度。任何软件学好后都可以提升工作效率,以及带来经济效益,但前提是学得足够好,以及用得恰到好处。

当然,也可以换一种回答:别问有没有用,您有几分耕耘?学习VBA的必要性

VBA能做什么?是否有必要学习?VBA有很多事都不能做,例如,不能开发独立的应用程序、不能开发ERP系统、不能实现网页设计、病毒清理等,但是在它的专业领域可以实现诸多令人惊奇的功能,常常让人眼前一亮,咦,制表原来可以这么快!

工作中是否有很多需求,Excel做不到?例如,底端标题、隔N行插入M行、金额大小写批量转换等。再或者说,Excel某些内置函数您一直不满意。例如,CONCATENATE有诸多限制;Vlookup只能返回第一个找到的值;SUM函数不能实现按颜色汇总,也不能对超过15位的数据求和……而这都是VBA的用武之地,所有问题VBA皆可轻松化解。

当然,VBA更重要的应用在于开发插件和设计运算系统(财务、人事管理系统等)。当VBA的功能发挥到极致时,很多平常需要数小时的计算工作,VBA能在三两秒钟内完成。“秒杀”,对于VBA用户来说已司空见惯。学习VBA的基础

学VBA需要会英语、需要懂VB或者C++,这是与网友交流中看到的最多的说法。其实不然,VBA与英语没有任何关系,一个不认识任何单词的人也可以学好VBA,就像笔者自己。当然,会英语对学习VBA是一个辅助条件,可以看懂一些外国的参考资料,但绝不是必要条件,国内的资料已足够丰富。

从另一个角度讲,如果学VBA需要懂英语,那岂不是懂英语的人对于VBA一看就会?事实上当然并非如此,一个英国人学习VBA并不比中国人的学习时间短,这也反证了英语不是学习VBA的基本要求。

VB和C++是否必需要会呢?当然也不是。不过懂VB和C++对于学习VBA是有帮助的,主要体现在编程的理念和思路上,已养成程序员的严谨、逻辑性等良好习惯,这种习惯和思维对学习VBA有帮助,但并非VB和C++程序本身构成学VBA的基础,它们所涉及的对象大不相同。一个C++专业程序员转学Excel VBA,仍然需要逐个学习Excel的对象、属性和方法,没有捷径可走。

那么学习VBA的基础究竟是什么呢?笔者的看法是:能分清什么是单元格、工作表、工作簿,会使用条件格式、定义单元格格式,会排序、筛选、填充、操作图形对象等,这已足够。当然,还需要认识26个英文字母。

简单吗?是的,学习VBA的基础条件就这些,如果您都会,那么祝贺您已步入VBA潜在用户之列。

当然,若要成为好的程序员,还需要有好的耐心、周密的思维能力、充分的逻辑性,以及举一反三的能力等。学习VBA需要背英文单词吗

当然不需要。举一个例子:100以内的加减法,你我皆会吧?会计算100以内的加减法是因为背下了100以内的所有加减法表达式的答案,还是因为掌握了加减法运算技术呢?1+1,1+2,1+3,1+4......2+2,2+3,2+4......也就是说,仅100以内的加法表达式就有5000多个,减法表达式也有5000多个,还不包括小数。把这么多题目的答案背下来是不可能的事,但是懂得计算方法却是极容易的事。方法会了,一通百通。

VBA同样也是这个道理。如何发挥VBA的潜能

VBA的理论不多,但是理论极其重要,是解决一切VBA问题的基石。学习VBA,需要深入理解VBA的对象、属性、方法、事件,以及它们的调用方式,其后则一通百通。

本书有三分之一的篇幅展示VBA的基础理论,三分之一罗列应用案例,三分之一分析思路及过程,阐述代码的优化与提速。通读本书,且反复操作案例,必可掌握VBA的精髓。罗刚君前 言

Excel是所有制表软件中最优秀、市场占有率最高的一款软件。这归功于它除了拥有强大的制表功能外,还提供二次开发平台,允许用户开发新工具,以完成Excel本身不具备的功能。或者通过VBA实现自动化,让某些功能全自动执行,大大提升工作效率。这使得Excel从众多制表软件中脱颖而出。

通过VBA进行二次开发,可以强化Excel的功能,将某些烦杂或者重复的日常工作简化,还可以开发商业插件或者小型财务系统等。可以说VBA已完全融入办公文员的日常工作,拥有VBA就等于拥有效率。本书目的

Excel VBA是一门强化Excel以及改造Excel的程序语言。利用VBA可以完成两大类任务:解决自己的工作问题(强化)和开发通用软件(改造)。而市场上大量的VBA书籍大都属于前者,侧重于讲述VBA基本语法及如何利用VBA处理一个工作中的具体疑难,而对于开发通用型插件来延伸Excel的通用功能方面则少有涉及。本书旨在弥补这种不足,在VBA理论的基础之外重点阐述如何开发插件,以适应一个群体的需求,而非仅仅处理个人的临时性问题。

本书用60%的篇幅普及VBA相关的理论知识,包括认识VBA的对象、属性、方法与事件的应用,还对如何提升程序的通用性、防错、提速等方面进行反复地阐述与论证,通过大量的实例传授程序的优化之道,力图提升代码的执行效率。

另外,VBA也可以借助它山之石强化自己的功能。所以本书对VBA相关的其他边缘性知识体系也做了系统介绍。例如,脚本语言WScript、文件管理系统对FileSystemObject、DOS磁盘管理系统与API函数、正则表达式、字典等在VBA中的应用。通过本书的学习,读者可以对VBA有相当完善的认识与理解,并建立自己的程序开发思想,具备开发大中型专业程序的能力。

此外,本书还有两个新的重点:功能区(Ribbon)的开发和封装安装程序。这是相对于《Excel VBA程序开发自学宝典》第1版新增的内容,其中封装安装程序表示将VBA代码封装成DLL文件,再将DLL文件制作成EXE安装程序,从而提升代码的安全性和程序的专业性。本书结构《Excel VBA程序开发自学宝典(第2版)》是一本讲述VBA语言理论基础及开发VBA程序的书,全书共30章,分为以下五个部分:

入门篇:VBA优势、功能、概念与操作界面

进阶篇:VBA语法、过程、事件与代码优化

登堂篇:VBA数组、窗体、控件与脚本语言

入室篇:正则表达式、字典、API、设计功能区与菜单

攀峰篇:开发通用插件及封装代码本书特点

相对于同类书籍,本书在内容编排上具有以下特点。

1.除了对VBA语言的基础语法与对象操作解说外,重点展示了如何开发一个独立完善的插件,而非局限在通过VBA解决一个临时性的工作问题。通过本书,您完全可以实现编写自己的商业软件,也可以开发一个完善的管理系统。

2.本书属于国内第一本详细展示开发功能区的图书。书中第24章使用近50页讲解功能区中各元素的特点、调用语法和案例展示,通读该章节,您可以开发属于自己的功能区选项卡与菜单。

3.本书对代码的执行速度有较多的笔墨叙述,而且总结了多条代码优化的规则。

4.正则表达式应用在VBA中可以强化VBA的字符处理功能,本书详细地阐述了正则表达式的调用方法、语法,并提供了大量案例与思路。

5.详述利用VB 6.0企业版开发具有更高安全性的COM加载项,并通过Inno Setup将它封装成EXE格式的安装程序,读者可以借此开发自己的商业软件。

6.为了最大限度地提升读者的知识面,本书提供了几百个VBA相关的疑难解答。在每个奇数页的页脚处提供一个常见的问题,在偶数页的页脚处提供问题的答案,从而让读者在学习VBA理论知识与实践之外,可以拓展知识面、解除心中疑惑。光盘文件

本书的随书光盘包括书中所有实例文件的源代码,以及作者精心开发的大型插件“Excel百宝箱”安装文件与源代码,以及百宝箱的制作教材。

本书还搭配了视频教材,不过由于时间关系,图书先印刷上市,然后再制作视频教材,所以视频教材将不会放在随书光盘中。

在本书上市后,视频教材将会陆续在以下论坛网址提供下载,请读者随时关注论坛的更新信息。网址如下:

http://andysky.5d6d.com/thread-2488-1-1.html适合读者群

本书对VBA的基础理论有比较详尽的介绍,并提供了大量的案例。对VBA的高级知识——数组、类模块、API、正则表达式、开发功能区与菜单、VBE组件操作与开发插件、封装代码等也有大量的理论阐述与案例演示。

本书适应的读者包括三类:

◆ VBA入门者,可以通过本书系统地学习VBA知识。

◆ 已有VBA基础,但需要扩充知识面,让自己的程序具有更好的通用性、纠错性及更高的执行效率。本书对程序的优化、纠错等方面进行了大量的论证。

◆ 已对VBA有相当的认识,但想开发更专业的商业软件者。本书对开发加载宏、自动化加载项和COM加载项有详细的阐述。并有较多案例演示,且提供制作安装程序的思路教学。售后服务

本书提供售后服务QQ群68372500,以及售后服务论坛,网址如下:

http://www.exceltip.net/。

读者可以通过以上QQ群或者论坛反馈阅读心得,或者提交对本书的建议。同时,如果读者发现书中有错别字,也请读者在QQ群中进行反馈,我们在二次印刷时将会改进。在阅读本书时,有疑问可以随时在售后论坛发帖,有专人负责解答。

另外,本书与《Excel 2010 VBA编程与实践》是配套图书,《Excel VBA程序开发自学宝典(第2版)》是VBA初级教材,《Excel 2010 VBA编程与实践》属于高级教材,两者配合阅读会取得最佳效果。

如果同时购买以上两本书,作者将额外提供12个赠品(加载宏插件,含源代码)。赠品名称与功能介绍如下。

1.二级选单

可以像数据有效性一样产生下拉列表,但更强大,可以产生二级选单。

2.批注替换工具

可以批量替换批注文本的工具,并且可设定是否区分大小写以及替换时的匹配方式。

3.选项菜单设计

通过它既可控制某些视图对象的显示与隐藏,又可学习选项菜单的设计思路。

4.一键录入代码

用于提高编写代码的速度与准确度,单击菜单即可录入常见代码。

5.复选框管理

可以批量生成复选框,也可以批量删除、勾选复选框,功能强大,操作方便。

6.历史数据记录器

将指定区域中每一个单元格的修改都记录在案,以备查用,且同时记录修改时间。

7.增强型视图控制

是内置的视图工具的强化版本,更重要的是可以学习如何开发功能区。

8.自定义函数封装

自定义函数Connect,是&运算的强化版本,功能强大,且配备代码封装教材。

9.隐藏磁盘

可以将指定的磁盘隐藏起来,并禁止使用,从而确保私人文件的安全性。

10.隐藏错误值

可以将工作表中的所有错误值在隐藏与显示之间瞬间切换。

11.工作簿标签

在菜单产生工作簿标签的插件,让工作簿切换更方便、快捷。

12.Excel百宝箱8.0正式版

Excel百宝箱8.0是利用VBA编写的增强型插件,它包括105个功能。当安装百宝箱后,将产生【百宝箱】功能区及其子菜单。百宝箱所有功能都通用于Excel 2003、Excel 2007和Excel 2010。可以在以下网址查看百宝箱8.0的详细介绍及动画功能展示,并下载试用版(读者可以免费获取正式版)。

网址:http://excelbbx.net本书作者

本书主要由罗刚君编写。罗刚君是多个大型论坛的版主,有着丰富的VBA程序设计经验,已出版七本Excel图书,包括《Excel VBA范例大全》、《Excel 2007常见技法与行业应用实例精讲》、《Excel 2007 VBA开发技术大全》、《Excel 2007函数案例速查宝典》、《Excel VBA程序开发自学宝典》、《Excel 2010 VBA编程与实践》、《Excel 2010函数与图表速查手册》。

另外参与本书写作的还有王金潮、王珉、康红、曹中伟、侯家良、龚丹、章兰新、罗国芳、龚太平。其中第1章至第8章由王金潮、王珉、康红、曹中伟编写;第9章至第16章由侯家良、龚丹、章兰新、罗国芳编写;第18章至第23章由龚太平编写;其余章节由罗刚君编写。罗刚君第1章从插件看VBA的优越性

简单地说,Excel VBA是依附于Excel程序的一种自动化语言,它可以使程序自动执行、批量执行、定时执行……类似于DOS操作系统中后缀名为“.bat”的批处理文件。那么它有什么具体的功能?在工作中与常规操作方式相比,又有哪些优势?笔者将在本章通过一个简单而实用的插件一一呈现。本章包括

◆从身份证号获取个人信息

◆在工作中如何发挥Excel插件的优势1.1 从身份证号获取个人信息

制作人事资料时,通常需要录入职员身份证号码,以及生日、年龄、性别等资料。除身份证号码需要手工逐一录入外,其他三项信息均有四种录入方法:手工录入、内置公式、自定义函数法、插件法。手工录入方式效率极差,且出错几率也最高,本节通过后三种方式来实现录入并比较,从而让读者对VBA的优势与用法有个初步的认知。1.1.1 内置公式法

以图1.1的数据为例,利用公式从身份证号码中提取生日、年龄、性别等信息,可以有多种方法。本例列举其中之一,内置公式法。图1.1 根据身份证号码提取职工年龄、生日与性别

通过公式计算职工的年龄、出生日期与性别,步骤如下:

step 1 在单元格C3中输入以下公式,用于计算年龄:

step 2 在单元格D3中输入以下公式,用于计算出生日期:

step 3 在单元格E3中输入以下公式,用于计算性别:

step 4 选择C3:E3区域,将公式向下填充即可实现批量提取身份证信息,其效果如图1.2所示。图1.2 公式法批量获取身份证信息

点评:相对于手工输入法,利用公式从身份证号码中获取个人信息效率更高、错误率更低,人员越多时越能体现出其优势。

提示

本例文件参见光盘:..\第一章\提取身份证信息.xlsm1.1.2 自定义函数法

自定义函数是指利用VBA编写的外置函数。在本例的随书光盘中已经录入了相关的VBA代码,可以在工作表中任意调用。对于代码的含义和录入方式在本书后面的章节将有详细介绍,本章仅通过具体应用展示其用法及效率优势。具体操作步骤如下:

step 1 进入“自定义函数法”工作表;

step 2 在C3:E3区域分别输入以下三个公式,用于计算年龄、出生日期和性别:

step 3 选择C3:E3单元格,将公式向下填充,结果如图1.3所示。图1.3 自定义函数法批量获取身份证信息

本例中的函数“SFZ”即身份证函数,用于从身份证号码中获取年龄、生日与性别等信息。它不属于Excel内置函数,需要利用VBA编写代码方可使用。读者可以从随书光盘中获取该函数的完整代码。“SFZ”函数有两个参数:第一参数cell为单元格引用,第二参数Options为信息描述,即用于指定需要获取身份证中哪一部分信息。当它为“NL”(不区分大小写)时,表示获取年龄;当它为“SR”时,可获取生日,当它为“XB”或者省略第二参数时,可获取性别。

点评:相对于内置函数法,自定义函数法是借用VBA编写的外置函数完成的,它的优势在于公式简短,且容易理解公式的含义。任何不熟悉函数与VBA者皆可在一分钟内学会操作并理解其公式与参数的含义。1.1.3 插件法

插件法是指借用Excel插件操作工作表,该插件不隶属于当前工作簿,但却可以实现与当前工作簿交互的功能,批量、迅速完成身份证信息提取工作。

操作步骤如下:

step 1 在关闭Excel程序的前提下,将随书光盘中的插件(..\第一章\批量获取身份证信息.xlam)

复制到以下自启动文件夹中即安装完成:

注意

如果您的Office 2010没有安装在C盘,那么上面的磁盘号需要根据实际情况做修改;如果您使用的是Office 2003,则将其中的“Office14”修改为“Office11”;如果您使用的是Office 2007,则将其中的“Office14”修改为“Office12”。

step 2 打开光盘文件“提取身份证信息.xlsm”,进入“插件法”工作表;

step 3 选择单元格区域B3:B6,单击右键,从快捷菜单中选择【批量获取身份证信息】菜单,程序将弹出“确定计算区域”对话框。该对话框中默认显示当前选区,如果需要修改,可以输入新的区域,也可以用鼠标在工作表中选择身份证号码存放区域,该区域的地址会自动产生在对话框中,如图1.4所示。图1.4 插件法批量获取身份证信息

step 4 单击“确定”按钮,程序在瞬间就会从选区的所有身份证号码中提取出年龄、生日和性别等信息。

点评:用插件法从身份证号码中批量获取信息的优点是速度快,通用性好。相对于内置函数法,它在操作上更简便快捷,不需要任何函数知识,不需要输入长长的公式,仅需单击几次鼠标即可,弹指间完成大量的运算工作。相对于自定义函数,它的优点是通用性好,在任何工作表、任何工作簿中皆可使用本工具,而自定义函数不是以插件方式存在,只能在当前工作簿中使用。1.1.4 浅谈VBA优势

从前面三个案例中我们可以看出,Excel具有强大的计算功能,但常规方法对于某些大型数据运算显得比较烦琐。用户需要学习复杂的函数知识,设置较长且难以理解的多层嵌套公式才可以解决某些运算。而VBA可以使公式简化、易懂,甚至根本不需要公式、无需录入一个字母即可完成一些专业性较强的计算工作。

具体来说,相对于Excel的内置功能,VBA或者说利用VBA开发的插件具有以下优势。

◆ 批量地对操作对象进行数据处理

以前一节插件法完成身份证信息的案例进行例证,它可以瞬间完成多个单元格数据的运算,甚至多个工作表中存放的身份证号码也可以瞬间完成信息提取。较传统的逐一处理方式在效率上有大幅提升。

◆ 多任务一键完成

多任务是指对同一个对象需要进行多个操作。例如,前一节中从身份证号码中同时获取生日、性别与年龄三类信息,VBA可以实现单击一个按钮后瞬间完成,完全感觉不到程序在分三步逐一完成任务,这是高效办公的最佳体现。

◆ 将复杂的任务简单化

Excel是很多小工具的综合体,这些工具可以嵌套运用,完成更强大的数据处理。但当嵌套过多时,就需要用户有较深的功底才能驾驭或者理解。另外,对于一些特殊行业的工作、任务,也要经过很复杂的操作才可完成,这对于那些只需要应用不需要深入研究和理解的普通办公职员们来说是一个技能考验。而通过VBA进行二次开发则可以将复杂的任务简单化。简单是指理解和操作上同时简化。

就像1.1.3节中通过右键菜单提取身份证号码中的三类信息一样,不需要用户去录入繁杂的公式,以及理解信息的提取过程,单击菜单即可完成。再如企业中生成工资条,10000个人的工资数据用手*工操作需要处理10000N次,而利用Excel插件则可以单击按钮瞬间完成。

◆ 提升工作表数据安全性

利用VBA代码可以对数据进行多层保护,在某些特殊需求下,VBA可以保护数据让普通用户无法胡乱修改,或者防止意外破坏数据结构。

◆ 提升数据准确性

准确性体现在数据录入和数据运算两方面。首先,通过VBA对输入的数据进行限制,可以防止用户意外录入不规范字符。如数值中有两个小数点,或者录入数值时意外录入了标点符号或者字母,造成无法计算或者漏算部分数据等。其次,在数据运算时,人工设置大量公式,或者每天在不同工作表重复录入同一个公式,在大量地操作中难免不产生一次错误,而利用VBA可以让工作简化。工作量越小,出错的几率就越小。同时,在大量重复性工作中,VBA可以确保不产生错误。

◆ 完成Excel本身无法完成的任务

弹出提示、警告对话框、行程安排与预告,或者到磁盘中查找需要的数据、修改注册表等,Excel常规方式是不可能完成的。如果需要类似功能,VBA是最佳选择,它可以轻松胜任与制表相关的各类操作需求。

◆ 开发专业程序

利用VBA还可以开发一些专业性的程序,如报表汇总软件、进销存管理系统、人事管理系统等,可以将界面设置成与其他任何软件的显示方式相媲美的专业程序软件。1.2 插件特点及如何发挥插件的优势

在1.1节中,通过一个身份证信息获取的插件认识了Excel插件,那么在工作中应如何发挥Excel插件的优势呢?1.2.1 Excel插件的特点

Excel插件是利用VBA程序开发的外置工具,通常是xla、xlam格式或者DLL格式。其中xla和xlam插件直接用Excel就可以开发,而DLL插件通常采用VB或者C++、VB.NET、VSTO来编写。

不管何种软件开发的插件,都需要在外观和功能两方面具有某些特征,以方便用户调用。1.外观特征

◆ 有若干个菜单或者工具按钮

在插件封装后,调用其代码有两种方式:代码调用,用菜单或者工具栏按钮调用。显然菜单更方便,用户通过单击菜单即可完成相对于常规方式较复杂的操作或者运算。

◆ 利用窗体实现与工作表数据交互

在弹出的窗体中可以调用工作表中的数据,也可以将窗体中录入的数据导入到工作表。而在窗体中录入数据时,相对于在工作表中录入数据,可以更好地控制。例如,某个文字框中可以限定只能录入数字,而另一个文字框则限定只能录入日期,也可以设定录入某项目后自动跳转到指定目标位置,而不用手动去移动光标插入点,甚至可以在录入时核对是否与工作表中的已有数据重复等。

◆ 有一个帮助界面

对于开发者来说,不管自己开发的工具如何简单,都有必要向用户说明其功能和操作方式。所以在工具中通常加入一个窗体,进行文字说明或者动画演示。特别是工具没有提供菜单,而是通过函数调用或者快捷键调用时,更有必要通过说明窗体介绍功能。

◆ 对函数做参数说明

对于函数类插件,必须对每个函数的参数进行详细说明,让用户插入函数时可以清晰地看到每个函数中每个参数的功能与使用方式。2.功能特征

Excel插件中的代码和普通宏程序的代码在编写上有一些差异,这取决于它们各自的应用环境和对象。其中宏代码通常用于解决某个具体的问题,它可能限用一次,也可能需要反复调用,但都只为解决某个具体问题而录制。而开发Excel插件则通常是开发者开发后,给其他的终端用户使用,用户不确定,需要操作的区域对象也不确定。所以插件有不同的需求,它需要具备以下特征:

◆ 没有具体的区域地址

由于开发插件通常是给其他的终端用户使用,所以不能指定数据区域地址,而是提供一个自由选择目标区域的选择对话框,或者利用代码计算目标工作表中的待计算区域。这是与录制宏最大的差异。

◆ 不使用具体的工作表名或者工作簿名

原因与前一条一致。

◆ 必须有通用菜单或者窗体

DLL格式的插件不存在工作表,而xla和xlam格式的插件工作表是隐藏状态,所以必须建立一个通用的菜单栏,使其在打开任意工作簿时都会显示出来供用户操作。如果设置了快捷键,那么可以不用菜单或工具栏,界面将会更简洁。

◆ 尽可能提供自定义选项

插件的针对性不强,即它需要具有广泛性。插件通常不是为某一个固定用户开发的,其需要处理的数据也非永远一致,那么在不同用户使用同一功能时,需要有自定义其参数或者选项的空间,工具才能有更好的通用性。例如,设计一个工资条制作插件,那么工资条的表头行数就有必要让用户选择,而非强制一行或者两行。这和编写一个解决临时性问题的编程思路不同。

◆ 具有多版本适应能力

目前办公用户使用的Excel版本差异很大,有Excel 2000、Excel XP、Excel 2003、Excel 2007和Excel 2010。开发者不会假定用户都用某个版本的Excel,而是通过代码判断当前用户的版本号,然后调用不同的代码,以适应当前版本,否则有些功能可能无法使用。

◆ 防错机制

自用型宏代码通常不用防错,因为用户和开发者是同一人。而插件则必须有完善的防错机制,预先设置了遇到某种错误该如何反应的措施,避免破坏用户数据,或者进入死循环,耗尽计算机的内存资源。1.2.2 Excel插件的优势与限制

在工作中使用插件,可以使工作更轻松,运算更快速、准确。当然前提是插件的代码编写足够优秀,不仅具有很强的通用性,还要有完善的防错机制,以及灵活的自定义选项。那么,在工作中使用优秀的插件具有哪些优势呢?

◆ 简化操作:类似于DOS中的bat批处理文件,可以一键执行多个任务。

◆ 强化功能:对Excel内置功能无法完成的一些任务,借用VBA代码可以实现。

◆ 美化界面:VBA可以调用Flash动画,也可以播放Gif动画,还可以直接对单元格字符产生滚动效果。对于喜欢装点的用户,借用VBA可以对工作表进行很好的修饰。

◆ 固化格式:VBA可以对录入的数据进行检测,阻止输入不规范的数据,也可以禁止新增、删除工作表,或者禁止缩放窗口等,从而促使多用户文件能确保格式一致,便于汇总。

虽然插件在工作中有以上优势,但它在某些方面也有一些限制。

◆ 通用性方面:开发插件通常是个人行为,而不像Office软件一样由一个大公司主持。所以其通用性可能不够完善,由于开发者测试的次数少以及测试条件不足等原因,导致工具具有某些隐含的缺陷。

◆ 防错方面:程序员不一定是终端用户,甚至可能从来没有成为办公用户,而是直接学习插件开发。因此在程序编写时就可能思维受限,无法对可能出现的所有错误进行防范。

◆ 移植方面:插件属于外置工具,它的所有功能都需要安装才能使用。所以利用插件设计的表格有可能在传给客户后无法正常开启,或者开启后无法正常显示。最好的解决方法是将插件让客户端也安装一次。

◆ 独立方面:Excel的VBA是依附于Excel主体程序的附属程序,它可以开发强化Excel功能的程序,但不能开发脱离Excel而单独存在的软件。如果需要开发全新而专业的应用程序,VBA并非理想的程序。1.2.3 如何发挥插件的优势

可以确定的是,善用插件能提升工作效率。但是插件也不可滥用,否则享用优势的同时,也会产生后患。

首先,需要明白插件相对于Excel的功能属于外置工具,它需要安装后才能使用。如果读者的文件非自用型,需要与他人共享、阅读,那么需要连插件一起共享。

其次,如果是简单的功能,尽量使用内置功能,少用插件。插件适用于处理复杂的或者Excel内置功能无法完成的工作。例如,宏有一个通用BUG,即使用宏代码后,内置撤销功能将禁用。为了让用户减少损失,针对某些会更新数据、修改(破坏)原有格式的工具,一定要提供一个恢复原状的程序。例如,有制作工资条的工具,就搭配一个删除工资条的工具。

最后,尽量将插件在同部门共享,即以一个办公室或者一个企业为单位,让整个单位都拥有相同的插件,才能更好地发挥插件优势。1.2.4 开发Excel插件的条件

要成为插件的开发者需要具备什么条件呢?现列举如下。

◆ 熟练掌握VBA技术

这是首要条件。必须熟练地掌握大部分常用对象及其属性,且需要了解数据处理的常见思路,并从多种处理方式中找出最高效且通用的方式。如果在某些特殊情况下,程序的通用性与执行效率只能选择其一时,通用性优先于执行效率。

◆ 具有一定的报表操作经验

仅学习VBA是可以开发插件的,但是仅掌握VBA知识是不可能成为优秀的程序员的。例如,开发财务人员专用的插件,那么需要懂得一些财务知识。不需要精通财务,但一定要对财务知识有所了解或者有财务报表的制作经验,才可能开发出适合于财务人员的插件。

◆ 美化常识

这里的美化并不一定是漂亮的外观,而是需要使自己开发的程序界面具有协调性、统一性,还需要了解普通用户的操作习惯,根据习惯设计人性化或者操作更便利的界面。当然,在不影响效率的前提下,应当将窗体设计得更美观。

◆ 熟悉不同版本的Excel间的差异

终端用户们有可能使用多个版本的Excel,那么开发者也需要了解不同版本间的差异。例如,Excel 2003中Application对象有FileSearch属性,用于在磁盘中查找文件,而Excel 2007和Excel 2010版本取消了该属性,那么开发插件时就应尽量避免使用该属性,而是借用其他方法来代替,否则将产生兼容性问题,以致程序产生BUG。

◆ 具有较强的耐心

编写程序是一个与字母朝夕相处的过程。对于大中型程序,可能要长时间对着一堆字母或者数字,这需要有一定的忍耐力。甚至在程序开发完成后,仍然需要耐心对程序进行多角度、多版本的测试,以提升程序的通用性和纠错性。1.2.5 本书架构

本书除VBA基本理论外,偏重于讲解插件开发的原理、思路与方法、封装插件以及如何提升程序执行速度。在以后的章节中,主要按以下方式进行编排。

◆ VBA历史与功能、安全性等周边知识简要介绍。

◆ 认识VBE编辑器并对其进行优化设置。

◆ 学习VBA中常用对象及属性、方法、事件。

◆ VBA代码优化、语法剖析、基本对象的应用案例。

◆ 掌握VBA高级应用,包括窗体设计、使用数组、类模块和API函数应用。

◆ 学习VBA与其他语言的调用,包括FSO、脚本、DOS、字典与正则表达式。

◆ 自定义菜单、工具栏、功能区。

◆ 开发专业插件,包括加载宏及利用VB开发COM加载项插件。

◆ 制作安装程序。

◆ 最后利用前面章节的知识开发一个大型Excel插件——Excel百宝箱。从该插件的开发思路和过程让读者了解插件开发的常规流程及注意事项。

本书以插件开发为重心,对VBA中的常用知识(不一定与插件开发相关,但工作中较常用的功能)也会进行详解,或者进行实例演示。

除插件开发外,程序的提速和防错是本书多次强调的重点。

从第2章开始,让读者学习、掌握VBA理论知识,为插件开发提供理论基础。

◆    ◆    ◆第2章VBA简史与安全性

VBA是Visual Basic在应用软件中的二次开发平台。学习Excel VBA前有必要对其发展史、功能、特点等方面进行了解。本章包括

◆ VBA的发展史与优缺点

◆ VBA能做什么

◆ VBA的安全性

◆ 使用VBA帮助2.1 VBA的发展史与优缺点

VBA语言作为VB家族成员,起步很早。发展至今已拥有非常广大的用户群,在日常办公中起着举足轻重的作用。2.1.1 宏与VBA

Excel早在1985年就首次在Macintosh上出现,1987年Excel开始引进到Windows环境中。当时Lotus 1-2-3是计算机历史上最成功的软件系统之一,但它仅支持一些极其简单的宏,而Excel软件从Excel 4版本开始可以使用相对复杂的xlm宏,完成更复杂的工作,慢慢地将Lotus 1-2-3挤出电子表格行业,并迅速占领了市场。当Excel 5正式推出VBA(Visual Basic for Applications)作为通用的宏语言来为Office应用程序编写代码后,Excel已完全征服了制表用户。可见宏语言在表格软件中影响之深远。

宏的英文名为Macro,是自动执行某种操作的命令集合。它包括两个过程,即Excel 4或者称为xlm的宏语言和Excel 5中的VBA宏。Excel 4中的宏由宏表函数构成,由录入在宏表中的函数来控制程序的执行。1993年发布的Excel 5中,微软开始推广VBA作为宏语言,并同时引进VBA编辑器,即VBE(Visual Basic Editor)。用户可以通过录制宏来产生代码,代码储存在VBE环境的代码模块中,利用组合键【A1t+F8】可以反复调用录制的宏。

VBA是目前Office系列通用的一种程序语言,它支持录制、执行、单步执行、调试等操作,可以使用户从繁重的制表任务中解脱出来。VBA是一种面向对象的程序语言,由一种所见即所得的方式编写代码,这使它在学习和使用方面都比其他语言更简单。事实上,几乎所有VBA程序员都由录制宏开始学习VBA,这是一个VBA速成的捷径。甚至VBA高手们仍然对录制宏乐此不疲,因为它可以完成VBA程序的大部分代码,程序员仅需在录制的宏代码中稍加修改即可成为最后的合格程序;另一个最重要的原因是录制宏可以为程序员提供词典的作用,即忘记了某个对象单词,或者完全不明白某个属性的语法时,利用录制宏可以产生对应的代码,用户复制即可使用。2.1.2 VBA历史与版本

VBA的前身是xlm宏语言,鉴于xlm宏功能有限,至今已经用VBA完全替代了xlm宏。但是为了体现兼容性,所有版本的VBA中皆可以调用以前的部分宏表函数。例如,Excel 2010的application对象仍然保留了以下宏表相关的一个方法和两个属性,通过它们可以执行早期的所有宏表函数:

◆ Application.ExecuteExcel4Macro

◆ Application.Excel4MacroSheets

◆ Application.Excel4lntlMacroSheets

在抛弃早期宏语言后,VBA从1993年开始逐步在很多软件中出现。除Office办公软件外,CAD、CorelDraw等软件也支持VBA。目前VBA的最高版本是7.0。但需要申明的是,VBA版本并非与主体程序的版本对应升级,即Excel的多个版本有可能使用的是同一版本的VBA。例如,Office 2003和Office 2007都使用VBA 6.04版,而Office 2010则采用VBA 7.0版。

可以使用以下代码检测当前Office中的VBA版本:

不同版本的VBA带有不同的函数,编程时需要根据VBA的版本调整代码,使之尽量通用。但在Excel中编写VBA程序时,Excel的版本号显得更为重要。因为不同的Excel版本有不同的对象和方法,而且差异较大。2.1.3 VBA的优、缺点

VBA作为Office办公软件的二次开发语言,它是一个很优秀的程序语言,从国内外Office论坛中与VBA相关的发帖量就可以知道VBA用户群有多大,这也反证了VBA在工作中应用的广泛性和生命力。

总体来说,VBA语言具有以下优点。

◆ 可以录制

早期的磁盘操作系统DOS不支持录制,虽然它是一门很简单的语言,但要让大多数用户学好DOS仍然是一件难事。它的每个命令,每个字母都需要手工录入,所有命令都需在大脑记忆。而VBA采用录制方式可以产生完整的代码,对程序稍加优化即可得到最佳程序,摆脱死记代码的困扰。

◆ 所见即所得

Excel VBA有窗体及工作簿、工作表等对象,可以直接拖动产生对象,不需要编写创建对象的代码。而且可以调整为一边操作工作表数据或者图形对象,一边查看代码变化,即在录制宏的同时查看工作簿窗口或代码窗口。

◆ 调用现成对象

VB或者C++开发程序时需要自己设计窗体、对象,而Excel中有现成的工作簿对象、工作表对象、窗口对象、图形对象等,开发者仅需对这些对象或者数据进行操作即可,不需要开发一个报表程序及数据存放介质。这也是VBA简单易学的原因之一。

◆ 应用广泛

目前Excel、Word、Access、PowerPoint、FrontPage、Visio、Project、Outlook、AutoCAD、CorelDRAW等程序都支持VBA。而各程序间的代码可以相互移植,然后对代码中的引用对象稍加修改即可。

◆ 交流方便

这里说的交流是指VBA用户与用户之间的交流。国内外有很多大型的VBA相关论坛,可以通过论坛交流心得、学习他人的编程思路,以及在线提问。Office VBA方面的论坛远比C++或VB.net等语言的相关论坛要多得多。

相对于Excel内置功能,VBA也有它自己的缺点。

◆ 学习周期长

学习VBA的时间至少是两个月,而数据透视表、函数、图表等其他内置功能则相对要快一些。

◆ 专业词汇多

VBA中有几百个对象,每个对象有多个属性及方法,虽然不需要死记硬背所有对象名称和属性,但仍然需要花很多精力来理解、消化。

◆ 普及范围小

目前VBA用户群在一天天扩大,但相对于Excel的内置功能如公式、图表等,仍然有待进一步提升普及率。在普及不够的情况下,程序员的插件需要做更完善的帮助系统,也需要更多的时间来测试,使未接触VBA的用户能更快地掌握其技巧。2.2 VBA能做什么

VBA是一门程序语言,工作中VBA的常见用途是什么?本节进行讨论。2.2.1 VBA主要用途

可以肯定地说,VBA可以完成Excel常规功能可以完成的任何功能。但是事实上不可能有人用VBA来处理所有任务,而是有选择性、针对性地使用VBA。

概括地说,VBA主要用在以下几方面。

◆ 处理大型运算

Excel内置的函数嵌套也可以完成很多大型的数据运算,然而很多易失性函数会造成Excel程序启动缓慢,特别是数组公式,用VBA来处理数据运算则可以解决这个问题。

◆ 工作簿/工作表拆分与合并

对于工作簿/工作表按条件拆分成多个工作表的任务,手工完成效率极低,而VBA则可以轻松完成,单击鼠标即可。也有部分企业需要每月汇总下属分公司的报表,多报表的汇总人工操作显然是事倍功半,而VBA插件则可以一劳永逸。

◆ 处理重复性任务

针对某些每天都需要操作且完全复重不变的任务,利用VBA仅需要第一次手工操作、编写代码,后续的所有任务全都自动执行。它的优势不仅在于速度快,而且更准确。人工操作的步骤越多,出错的几率越大。

◆ 简化内置公式

以第1章的公式为例,以下两个公式都可以从身份证号码中获取年龄:

很显然,第二个公式输入效率更高,且更易让用户理解。其第一参数为引用的身份证号,第二参数“NL”表示年龄。

◆ 定制程序界面

对于某些喜好个性化的用户来说,Excel是支持全面定制的程序。利用VBA可以将Excel界面定制成更具有个性化的程序。类似于QQ换肤、播放器换肤等,Excel也可以通过VBA使程序标题栏、状态栏、菜单栏个性化。例如,产生滚动字幕,将个人照片、邮箱地址添加到菜单栏等,如图2.1所示。图2.1 定制个性界面

◆ 开发受保护的专业程序

网络上有很多Excel版的人事系统、学生成绩管理系统、考试座次安排系统等,利用VBA可以编写很专业的程序,且能对其进行保护,以确保开发者的利益。即使是纯公式设计的报表,有时也需要借用VBA来设计程序、注册功能或者登录界面等。2.2.2 VBA主要用户

根据VBA的特点,使用VBA主要有两类对象。

其中最主要的是开发者与终端用户为同一个人,即编写代码给自己用的业余程序员。而且VBA也是所有程序中拥有业余程序员最多的一类程序。利用VBA解决一个临时问题,或者处理某一个具体的重复性任务,是大家使用VBA最多的原因。只有少数用户是基于兴趣或者商业目的编写一些通用型插件,可以解决很多类似问题。

注意

普通宏程序和插件最主要的一个区别是:编写普通宏程序只为针对当前遇到的一个具体问题而编写,当问题解决后,该程序就没有存在的价值了;而编写插件则通过针对具有大众性质的问题,例如,工资条设计,很多企业、事业单位都需要,那么它的生存周期是很长的,用户也是不固定的,在编写时也就会产生更多的自定义选项留给终端用户。所以编写插件和自编自用型宏程序在困难度上也有较大区别。

VBA用户使用VBA通常有两个基本原因:其一为工作中某些任务利用常规方式处理太烦琐,需要VBA来简化工作;其二为因VBA兴趣而研究。笔者一直坚持的一种观点是:对VBA保持持续的兴趣是学好VBA很重要的条件。

另外一类VBA用户即为专业的VBA程序员,专为别人定制程序。这类用户除了需要熟悉VBA语法外,还需要对Excel各项操作有较多的经验。也有部分人员本身就是某个行业的资深主管、兼职程序员。例如,一个精通VBA的财务主管,他开发的财务类VBA程序一定比只精通VBA不懂财务的专业程序员开发的程序更专业,或者说更具易用性。2.3 VBA的安全性

20世纪90年代宏病毒泛滥,使人们对宏以及宏的安全性都有所了解。但事实上很多用户只通过宏毒病的传播了解宏的部分特点,这自然是很片面的。2.3.1 VBA的安全性

事物都有双面性,程序语言尤其如此。程序的功能越强,用它做破坏时破坏力也会越强。VBA依附于Excel程序,但它开发病毒并传播时,可以破坏的对象却不局限于Excel程序,磁盘中所有文件皆可以任意修改。正因为如此,学习VBA时,有必要掌握好这把双刃剑。

在默认状态下,Excel都是禁用宏的,以确保用户数据不会因潜在的宏病毒而受破坏。但是同时也带来另一个问题——正常的VBA程序无法执行。所以通常有三种做法:

◆ 不使用VBA程序的用户,可彻底禁用宏,杜绝宏病毒蔓延。

◆ 常用VBA程序,包括自己开发和别人开发程序的用户,可以将宏的安全性稍加提高,即遇到宏时提示用户,当用户确定代码安全后再执行。

◆ 自编自用型用户或者完全信任宏代码的开发者用户,则可以将宏的默认设置修改为无限制。即允许任何宏执行,从而提升工作效率。2.3.2 了解安全性对话框

Excel 2010有两个安全性对话框。一个是打开带有宏代码时提示用户的“Microsoft Office安全选项”对话框,如图2.2所示;另一个是位于Excel选项中的“信任中心”对话框,如图2.3所示。图2.2 “Microsoft Office安全选项”对话框图2.3 “信任中心”对话框1.安全选项

当勾选Excel的【信任中心】→【加载项】→【要求受信任的发布者签署应用程序加载项】,且安装了一个或者多个COM加载宏时,开启Excel后会在Excel编辑栏上方弹出一个“安全警告”的提示框。如果信任当前加载项,那么可以单击按钮“启用内容”,被安全选项阻止的加载项将会立即加载到Excel中。如果需要了解详细信息,或者有选择性地启用加载项,那么可以单击“部分活动内容已被禁用,单击此处了解详细信息”,并在弹出的对话框中单击“启用内容”→“高级选项”,如图2.4所示。而图2.2中的“安全选项一多个问题”(根据加载项的类型和数量不同,显示的文字也会有所差异)即为高级选项,在该对话框中可以看到被阻止的所有加载项,可以对多个加载项逐一判断是否加载。图2.4 启动宏安全警告之高级选项2.信任中心

前面所说的安全选项对话框中的“启用内容”仅对当前开启的Excel程序有效,当重启Excel程序后,加载项仍然会被阻止,弹出同样的对话框等待用户确认。如果想要一劳永逸地解决问题,包括彻底阻止所有宏或者彻底启用所有加载宏,那么需要通过“信任中心”对话框来管理。

进入“信任中心”对话框的方法为,单击功能区【文件】→【选项】→【信任中心】→【信任中心设置】,将弹出如图2.3所示的“信任中心”对话框。

Excel选项的信任中心主要用于管理宏的安全性问题,它包括“受信任的发布者”、“受信任位置”、“受信任的文档”、“加载项”、“ActiveX设置”、“宏设置”、“受保护的视图”、“消息栏”、“外部内容”、“文件阻止设置”、“个人信息选项”共11个选项,作用如下。

◆ 受信任的发布者:罗列出本系统中的所有数字签名证书。证书是文档中电子的、基于加密的安全验证戳。此签名可确认该宏或文档来自签发者且没有被篡改,表明您认为该数据库是安全的并且其内容是可信的。这可以帮助数据库的用户确定是否信任该数据库及其内容。

◆ 受信任位置:表示该位置下存放的代码是受信任的,不受宏的安全性设置的影响,任何情况下都会执行其代码。在本对话框中罗列了Excel默认设置下的几个位置。用户也可以手工添加新的受信任位置。通常可以将自己编写的代码所存放的目录设置为受信任位置,以避免每次开启Excel都手工启用宏。当宏的安全性设置为最高时,受信任位置的宏仍然可以顺利执行。

◆ 受信任的文档:用于设置是否信任某些文档,对于受信任的文档,在开启时将不会产生任何宏的安全性提示。

◆ 加载项:用于控制启动Excel时是否阻止加载项。可以设置为每次开启Excel时都彻底禁止加载项,也可以弹出提示让用户选择是否加载。如果三个选项都没打钩,那么将默许所有加载项的加载行为。

◆ ActiveX设置:控制ActiveX控件的启动方式,可以禁用所有ActiveX控件且不发出通知,达到最高的安全性。也可以禁止通知用户选择,还可以默认允许执行,以提高效率。在此处,效率和安全性是相冲突的。

◆ 宏设置:宏设置类似于ActiveX设置,它是对携带宏代码的工作簿进行安全限制。同样包括与ActiveX设置相似的选项。不过最下边的“信任对VBA工程对象模型的访问”则不控制宏的运行,而是用于控制代码对VBE环境的操作。默认状态下是禁用代码操作VBE环境中任何组件的,打钩后才允许读取或者修改VBE的任何组件。例如,在VBE窗口中新建一个菜单,或者删除VBA代码模块。

以下代码就需要在勾选“信任对VBA工程对象模型的访问”后才可执行:

◆ 受保护的视图:表示以受限模式开启来自网络、邮件等有潜在危险的文件。图2.5和图2.6分别为开启网络文件和邮件附件的工作簿时所弹出的提示。在单击“启用编辑”前,文档中的所有代码将禁止执行。图2.5 开启网络文件的工作簿时所弹出的提示图2.6 开启邮件附件的工作簿时所弹出的提示

◆ 消息栏:控制Excel是否弹出消息栏,即阻止宏运行时是否通知用户。默认状态是发出通知。

◆ 外部内容:所谓外部内容是指工作表中的公式引用其他工作簿,包括加载宏中的数据。本选项决定是否禁止引用以及是否弹出提示。在确保数据安全的前提下尽量选择数据链接和自动更新,以提升效率。

◆ 文件阻止设置:用于设置阻止开启和保存的文件类型。通常是针对与Excel 2010不兼容的文件类型,例如,Excel 95、4.0宏表等。

◆ 个人信息选项:本选项包括几个与网络相关的信息,在网络不可用的情况下设置无效。而在网络畅通的情况下数据引用也比较慢,建议不启用所有选项。2.3.3 让自己的VBA程序畅通无阻

根据前面的描述,Excel默认状态下是禁止宏代码和ActiveX控件运行的,而这对于自己编写的完全可以信任的代码也产生了阻碍作用,因此要修改设置,让代码默认即可执行。

让自己的VBA程序畅通无阻有两种方式,签署数字证书和设置受信任位置。从操作程序比较,设置受信任位置是最快速、最方便的办法。下面以安装“D:\工具箱\批量获取身份证信息.xla”为例演示如何让程序自启动而不被Excel阻止。

step 1 在D盘新建立件夹,命名为“工具箱”。

step 2 将“批量获取身份证信息.xlam”插件复制到“工具箱”文件夹中。

step 3 单击功能区【文件】→【选项】→【信任中心】→【信任中心设置】→【受信任位置】→【添加新位置】打开“Microsoft Office受信任位置”对话框,该对话框中默认显示Office临时文件夹路径。

step 4 在“Microsoft Office受信任位置”对话框的“路径”文字框中输入“D:\工具箱\”,并勾选“同时信任此位置的子文件夹”,在“说明”文字框中输入“我的信任位置”,如图2.7所示。图2.7 设置受信任位置对话框

step 5 单击“确定”按钮,返回“受信任位置”,在列表中将会显示新增加的地址“D:\工具箱”。

step 6 返回“Excel选项”对话框,单击左边的“加载项”按钮,再在底部的“管理”下拉列表中选择“Excel加载项”,单击“转到”按钮打开“加载宏”对话框。该对话框中罗列了所有已安装的内置加载宏和外置加载宏,如图2.8所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载