编辑推荐
资深软件开发专家多年经验结晶,深入浅出阐释OfficeVBA开发涉及的工具、方法和实践
内容简介
《Office VBA开发经典 基础入门卷》由一线高校教师根据自己十余年VBA开发经验编写而成,书中深入浅出地介绍Of?ceVBA的开发方法与实践。《Office VBA开发经典 基础入门卷》内容体系完善,涉及Of?ce多个组件的交互编程,重点阐释工具栏设计和功能区设计,案例丰富,让读者身临其境,体会VBA编程的策略和魅力。
《Office VBA开发经典 基础入门卷》可以帮助读者轻松熟悉Of?ceVBA编程,系统学习VBA编程的每个层面。《Office VBA开发经典 基础入门卷》分为19章,内容包括VBA编程概述、宏的编写和执行、VBA编程环境、VBA语法基础、过程与函数设计、程序调试和错误处理、字符串处理、数学计算与日期处理、ExcelVBA对象模型和相关对象、用户窗体和控件设计、自定义工具栏、Excel加载宏和经典编程实例等。书中所有章节涉及的程序代码都给出了详细分析。
《Office VBA开发经典 基础入门卷》可作为职场办公人员、高校理工科师生、Of?ce专业开发人员的自学用书,也可以作为Of?ce编程培训讲师的教学参考书。
目录
第1章VBA编程概述1
1.1VBA应用领域和发展现状1
1.1.1美国的VBA水平1
1.1.2日本的VBA水平2
1.1.3VBA专家考试3
1.2Office与VBA的安装3
1.2.1安装DAEMONToolsLite5
1.2.2Office2003的安装6
1.2.3Office2010的安装10
1.3Office版本12
1.3.1界面的变化13
1.3.2文件格式的革新14
1.3.3Office版本对VBA编程的
影响15
1.4OfficeVBA编程开发的产品类型15
1.4.1基于Office文件的编程开发15
1.4.2VisualBasic6封装16
1.4.3VSTO开发16
1.5高效学习VBA编程16
1.5.1必备基础16
1.5.2学习计划17
习题17
第2章宏的编写和执行18
2.1编程前的设定18
2.1.1显示“开发工具”选项卡18
2.1.2设置宏安全性19
2.2开始VBA宏编程20
2.2.1手工编写第一个VBA宏20
2.2.2录制宏21
2.3VBA代码的保存23
2.4宏的执行方法24
2.4.1使用“宏”对话框25
2.4.2使用快捷键25
2.4.3指定宏到图形对象26
2.4.4使用工作表事件运行宏26
2.4.5使用工作簿事件运行宏28
2.4.6指定宏到功能区28
2.4.7指定宏到快速访问工具栏30
2.4.8通过立即窗口执行宏31
习题31
第3章VBA编程环境32
3.1VBA编辑器界面介绍32
3.1.1立即窗口33
3.1.2本地窗口35
3.1.3属性窗口35
3.1.4对象浏览器36
3.1.5代码的查找和替换37
3.1.6VBA选项38
3.1.7外接程序管理器39
3.1.8VBA帮助40
3.2VBA工程管理42
3.2.1添加模块42
3.2.2移除模块42
3.2.3导出和导入模块43
3.2.4修改工程属性43
3.2.5工程引用44
习题45
第4章VBA语法基础46
4.1VBA数据类型46
4.1.1字符串47
4.1.2数值型48
4.1.3日期和时间型49
4.1.4布尔型49
4.1.5变体型50
4.1.6对象型50
4.1.7数据类型的判断51
4.1.8变量声明的简写形式54
4.1.9变量声明的初始默认值54
4.1.10数据类型的转换55
4.2表达式与运算符56
4.2.1算术运算符56
4.2.2比较运算符57
4.2.3Like运算符58
4.2.4逻辑运算符59
4.3使用变量60
4.3.1变量命名60
4.3.2变量的声明60
4.3.3变量的赋值61
4.3.4变量的作用范围和生存期63
4.3.5声明变量的其他写法64
4.4使用常量64
4.4.1自定义常量64
4.4.2内置枚举常量65
4.5其他数据类型68
4.5.1自定义类型68
4.5.2枚举类型69
4.5.3集合70
4.6使用InputBox输入对话框72
4.6.1VBA库中的InputBox72
4.6.2Excel库中的InputBox73
4.7使用MsgBox输出对话框75
4.8顺序结构77
4.9条件选择结构77
4.9.1If语句78
4.9.2Select语句79
4.9.3Choose语句82
4.9.4Switch语句82
4.10循环结构83
4.10.1While…Wend语句83
4.10.2Do…Loop语句84
4.10.3For语句86
4.10.4ForEach语句87
4.11流程跳转控制语句88
4.11.1GoTo语句88
4.11.2GoSub…Return语句89
4.11.3Exit语句90
4.11.4End语句90
4.12数组91
4.12.1一维数组91
4.12.2二维数组93
4.12.3使用Array创建数组94
4.12.4对象数组95
4.12.5变体数组96
4.12.6动态数组96
4.13代码优化97
4.13.1同一行书写多条语句98
4.13.2长语句的续行书写98
4.13.3使用缩进98
4.13.4使用模块定义102
4.13.5使用注释103
4.13.6使用With结构104
4.13.7使用Me关键字106
习题107
第5章过程与函数设计108
5.1过程108
5.1.1创建过程108
5.1.2过程的运行和调用109
5.1.3过程的参数110
5.1.4可选和默认参数112
5.1.5参数的传递方式113
5.1.6参数数量可变的过程114
5.1.7数组作为参数114
5.2函数115
5.2.1自定义函数的返回值116
5.2.2自定义函数的用途116
5.2.3设置自定义函数的说明信息119
5.2.4为自定义函数创建帮助文档121
习题127
第6章程序调试和错误处理128
6.1程序调试技巧128
6.1.1单步执行程序128
6.1.2设置断点130
6.1.3使用Stop语句130
6.2错误处理131
6.2.1Err对象132
6.2.2遍历错误号和错误描述133
6.2.3故意引发错误133
6.3错误跳转134
6.3.1错误发生时跳转到某行134
6.3.2错误发生时继续向下执行136
6.3.3Resume与ResumeNext语句136
习题137
第7章字符串处理139
7.1认识字符串140
7.1.1全角与半角140
7.1.2子字符串140
7.1.3字符串的长度141
7.1.4检索子字符串的位置142
7.2字符串转换144
7.2.1字符与ASCII码144
7.2.2大小写转换145
7.2.3全半角转换146
7.2.4去除多余空格146
7.2.5倒序147
7.2.6替换147
7.3字符串生成149
7.3.1String函数149
7.3.2Space函数149
7.4字符串与数组149
7.4.1Split函数149
7.4.2Join函数151
7.4.3Filter函数151
习题152
第8章数学计算与日期处理154
8.1数学函数154
8.1.1三角函数计算154
8.1.2随机数155
8.2日期与时间函数156
8.2.1返回与设置当前日期时间157
8.2.2计算程序运行时间157
8.2.3日期时间的生成158
8.2.4日期时间的加减运算159
8.2.5计算两个日期的间隔160
8.2.6日期时间的分解161
习题161
第9章ExcelVBA对象模型162
9.1对象和对象类型162
9.1.1属性162
9.1.2方法163
9.1.3事件163
9.1.4父子对象164
9.2使用对象变量164
9.2.1With结构166
9.2.2集合对象167
9.3ExcelVBA对象170
9.3.1应用程序对象171
9.3.2工作簿对象171
9.3.3表对象171
9.3.4单元格区域对象171
习题172
第10章应用程序Application对象173
10.1Application对象重要成员173
10.1.1ActiveWorkbook173
10.1.2ActiveSheet173
10.1.3ActiveWindow174
10.1.4ActiveCell174
10.1.5Addins175
10.1.6COMAddins176
10.1.7WorksheetFunction178
10.1.8Commandbars179
10.2Application对象重要属性180
10.2.1默认文件路径DefaultFilePath
属性180
10.2.2显示剪贴板DisplayClipboardWindow
属性181
10.2.3启用事件EnableEvents属性182
10.2.4显示“开发工具”选项卡
ShowDevTools属性182
10.2.5句柄Hwnd属性182
10.2.6标题Caption属性183
10.2.7版本Version属性183
10.2.8用户名UserName属性184
10.2.9安装路径Path属性185
10.2.10状态栏StatusBar属性186
10.2.11默认工作表个数
SheetsInNewWorkbook属性187
10.2.12窗口状态WindowState
属性187
10.2.13最近打开的文件
RecentFiles188
10.3Application对象常用方法189
10.3.1激活其他组件
ActivateMicrosoftApp方法189
10.3.2设置Excel的计算模式189
10.3.3计算Calculate方法190
10.3.4表达式评价Evaluate方法190
10.3.5快捷键OnKey方法191
10.3.6发送按键SendKeys方法192
10.3.7运行宏Run方法193
10.3.8退出应用程序Quit方法195
10.3.9定时执行OnTime方法195
10.3.10撤销Undo方法196
10.4Application对象常用事件196
10.4.1WorkbookBeforeClose事件198
10.4.2事件的取消199
10.4.3禁用和启用事件199
10.4.4SheetSelectionChange事件199
10.4.5WindowActivate事件200
10.4.6归纳总结201
前言/序言
前言
MicrosoftOfce可以称得上是世界上开发最成功的办公软件,目前微软Ofce的用户已超过12亿人,全球每7个人中就有一个使用Ofce(信息来源:微软)。然而伴随着Ofce
版本的推陈出新,Ofce软件的功能日益丰富、强大。在信息化时代、大数据时代的冲击下,数据量的剧增给办公人员带来了巨大的工作挑战,以往传统的手工办公方式经常显得捉襟见肘。
VBA几乎是和Ofce办公软件同时诞生的,微软公司开发VBA编程功能的初衷就是为用户提供更加灵活的处理方式,有人曾说“80%的人只用了Ofce20%的功能”,确实如此,
Ofce有很多功能通过手工方式是无法实现的,必须通过VBA编程。近几年来,越来越多的人开始学习和研究OfceVBA编程,十几年前招聘岗位要求应聘者会使用办公软件,而目前很多岗位要求具有VBA编程经验。
虽然VBA不能和著名的C、Java语言相提并论,但由于Ofce办公软件的庞大使用群体,VBA在数据处理方面的便利性和快捷性,使得这门语言在IT界具有一席之地。作者学习和研究VBA语言有十多年,深切体会到这门语言的强大和受欢迎程度。
《Office VBA开发经典 基础入门卷》的背景
目前,市面上VBA编程方面的书籍为数不少,但是其中大多数都把知识点容纳在一本
书中,这样就难免遗漏知识点,或者对知识点的探讨不足,容易造成学习者存在知识缺陷。
实际上,OfceVBA编程是基于VB6的一门编程语言,既有VB6的语法,又涉及
Ofce的对象模型,产品类型多样化,因此VBA绝非一门小语言,显然用一《Office VBA开发经典 基础入门卷》来诠释
VBA是远远不够的。
为了满足广大VBA学习者的需求,作者经过实践,把OfceVBA这一编程体系细分为四卷:基础入门卷(《Office VBA开发经典 基础入门卷》)、中级进阶卷、高级应用卷、VB6封装卷。
分卷书写的好处是,每一卷的讲解知识可以尽可能详尽,让学员不存在知识死角。其中,基础入门卷(《Office VBA开发经典 基础入门卷》)的编写目标在于帮助更多的VBA编程零基础人员熟悉VBA编程环境,掌握VBA编程初步和语法基础,能够用VBA解决实际工作中遇到的问题。另外,《Office VBA开发经典 基础入门卷》特别注重对ExcelVBA常用对象模型的阐述和实例运用。
《Office VBA开发经典 基础入门卷》的组织结构
《Office VBA开发经典 基础入门卷》大致分为以下六大部分。
第一部分(第1~3章):帮助读者认识VBA编程环境,理解宏是怎么来的,如何录制
和修改宏。
第二部分(第4~8章):主要内容是VBA的基础知识,帮助读者进一步掌握VBA编程特性,更深层次地理解什么是过程、函数,以及各种数据类型的运算、转换等。
第三部分(第9~15章):主要讲解Excel组件中的VBA编程,详细讲述Excel各种常用对象的属性、方法以及事件。
第四部分(第16~18章):主要内容是VBA界面编程、VBA作品的各种表现形式,主要包括用户窗体和控件设计、自定义工具栏、Excel加载宏等。读者通过学习这部分知识,基本可以设计出像样的作品,以供他人使用。
第五部分(第19章):经典编程实例,主要讲述作者在实际工作中如何用VBA解决问题,与读者分享产品设计构思、代码的实现方法。
第六部分:附录,包括VBA编程常用资料,以便VBA初学者查阅、学习。
《Office VBA开发经典 基础入门卷》的特点
编排合理,内容丰富。
针对性的实例比较多,知识点讲解透彻。
配套资源完善。
《Office VBA开发经典 基础入门卷》的读者对象
职场办公人员。
高校理工科师生。
Ofce专业开发人员。
Ofce编程培训讲师。
《Office VBA开发经典 基础入门卷》使用环境
在《Office VBA开发经典 基础入门卷》编写过程中,作者的电脑环境为Windows7(32位)+MicrosoftOfce2013。因此,读者的编程环境与上述相同或相近更佳。不过《Office VBA开发经典 基础入门卷》内容在Ofce2010及其以上
版本均兼容。
配套资源
《Office VBA开发经典 基础入门卷》配套资源包括:
ExcelVBA编程入门视频(视频文件及PPT课件、素材和源代码)。
《Office VBA开发经典 基础入门卷》所有源代码文件。
《Office VBA开发经典 基础入门卷》各章习题参考答案。
开发资源(编程过程中用到的工具、软件)。
读者可访问http://home.cnblogs.com/u/ryueifu-VBA/进行下载。
读者服务
为方便广大读者学习和探讨,读者可以通过以下方式与作者互动交流。
Ofce技术交流QQ群:193203228。
OfceVBA&VSTOQQ群:61840693。
其他说明
书中所有源代码在行首均有行号,这是为了讲解方便,行号并非代码中的部分。每个代
码段上方都留有源代码的路径(见下图)。
根据图中所示,源文件位于第14章,文件名称是实例文档25.xlsm,斜杠后面表示该过程所在的模块名称:单元格的选中和激活。
另外,因为《Office VBA开发经典 基础入门卷》是黑白印刷,无法正常显示出颜色,读者可以在实际界面或相关视频中看到。
致读者
随着信息化技术的普及和大数据的快速发展,以往的手工操作办公软件已经不能满足现
代办公的需求,因此,VBA编程技术作为Ofce办公软件的寄生编程语言,由于拥有较大的优势越来越受到社会各界的关注和青睐。然而,掌握或者精通OfceVBA编程并非易事,造成VBA入门难、提高难的原因很多,很重要的一个原因在于市面上缺乏系统、全面的书籍和资料,造成学习者知识点片面、对技术点认识深度不够,以致很多人买了纸质教材,又买了视频课程,还是不能得心应手地解决实际问题。
作者根据自身多年的学习和研究经验,尽量把编程过程中的疑难点、易混淆知识点融入《Office VBA开发经典 基础入门卷》,帮助广大读者领会VBA的学习方法和思路,少走弯路。《Office VBA开发经典 基础入门卷》从立意、写作到交稿历时一年之久,融入作者大量精力和心血。衷心希望广大读者能够从《Office VBA开发经典 基础入门卷》中汲取营养,早日成为OfceVBA编程达人。
《Office VBA开发经典 基础入门卷》除了刘永富、刘行之外,参与编写的人员还有重庆市信息通信咨询设计院有限公司的林兴龙、浙江省水利河口研究院的章晓桦、中睿通信规划设计有限公司的何明、中国石油塔里木油田分公司勘探开发研究院的仝可佳,以及崔世海、李白、李四桂、刘胜、杨杨、孙盼茹、唐超、汪洋、王刘斌、夏阳耀、肖云、徐鹏、杨迅、张琦、张勇、赵长城、钟卓成、朱岩松、祝磊、邱和有等。书中难免有疏漏之处,欢迎读者通过清华大学出版社网站与我们联系,帮助我们改正提高。
作者