Excel VBA实战技巧精粹(附光盘)
分類: 图书,计算机/网络,家庭与办公室用书,微软Office ,
作者: Excel Home 编著
出 版 社: 人民邮电出版社
出版时间: 2008-8-1字数: 964000版次: 1页数: 570印刷时间: 2008/08/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115182340包装: 平装编辑推荐
Excel Home利剑出鞘,招招精彩!
从社区上百万提问中提炼出的实用技巧,全面直击Word应用精髓。
涵盖主题:操作Excel对象,函数与加载宏的应用,交互式设计,文件系统操作,数据库应用,高级编程,代码调试及优化。
Excel Home是著名的华语Office技术社区、资源站点,微软技术社区联盟成员。
来自Excel Home多位MVP的集体推荐:详尽的实例,精彩的讲解,细致的描述,多角度的剖析,融汇Excel Home万千问题与答案,彰显Word丰富内涵,相信本书是你爱不释手、轻松办公的利器。
以Kevin为代表的一批中国区微软全球最有价值专家在Excel技术社区中有着重大而不可磨灭的影响力,他们对信息科技的热情令人动容,在本书中所显示出的技术水平更让人印象深刻。很高兴看到他们带领的团队聚集在一起,将各自的看家本领拿出来,毫无保留地奉献给读者。相信这本重量级的书能让众多Excel用户从中受益。
——林思绮 微软全球最有价值专家中国区主管
内容简介
本书内容侧重于Excel VBA使用技巧,旨在帮助Excel VBA的初学者和有一定Excel VBA应用基础、希望进阶的读者。全书精选了279个技巧、近300个典型实例,并辅以深入浅出的剖析,力求让更多希望深入掌握Excel VBA技巧的读者取得更大的提高。
本书分为8篇,第一篇主要介绍Excel VBA基础知识,第二篇介绍常用的Excel对象的应用技巧,第三篇介绍Excel函数和加载宏的应用技巧,第四篇主要介绍Excel VBA开发过程中交互式设计的使用技巧,第五篇介绍如何使用VBA操作文件对话框、搜索文件、操作文件和文件夹等技巧,第六篇以一个名为“学生管理”的数据库为例介绍ADO的应用,第七篇介绍如何使用Excel VBA访问Internet及进行相关操作、读写XML文档、操控其他的Office应用程序等高级编程技巧,第八篇介绍Excel VBA代码调试和错误处理的技巧,以及一些有效的代码优化技术。
本书内容丰富、图文并茂,适合各学习阶段的读者阅读。对于Excel VBA初学者,通过阅读本书能够学到正确的学习方法,快速掌握VBA编程的基础知识;对于有一定Excel VBA基础的读者,可以吸收书中的学习经验、解决方案和思路,不断提高VBA应用水平。
目录
绪论
01 VBA技术概览
02 透视Excel VBA
03 Excel VBA学习方法和思路
04 Excel VBA用户的水平层级
第一篇 Excel VBA基础
第1章 Excel VBA基础知识
技巧1 录制宏并获取有效的代码
技巧2 执行宏(调用过程)的5种方式
技巧3 快速输入代码的方法
技巧4 编写高效的VBA代码
技巧5 有效地获得帮助
第二篇 操作Excel对象
第2章 窗口和应用程序
技巧6 个性化Excel标题栏
技巧7 最大化应用程序窗口
技巧8 真正的全屏显示
技巧9 限定工作簿窗口大小
技巧10 隐藏Excel主窗口
技巧11 隐藏工作簿窗口
技巧12 禁止触发相关Excel事件
技巧13 个性化Excel状态栏信息
技巧14 Excel中的“定时器”
技巧15 年北京奥运会倒计时
技巧16 制作精美的数字秒表
技巧17 宏代码运行中的“暂停”
技巧18 防止用户干预宏代码的运行
技巧19 轻松指定需要调用的宏过程
技巧20 捕捉特定键或特定的组合键输入
技巧21 模拟手工选定单元格中的部分内容
技巧22 巧妙捕获用户中断
技巧23 更换Excel标题栏图标
技巧24 控制新建工作表的默认名称
第3章 工作表和工作簿
技巧25 在宏代码中引用工作表的4种方法
技巧26 在工作簿中轻松添加新工作表
技巧27 防止更改工作表的名称
技巧28 删除工作表时不显示警告信息
技巧29 批量删除未选中的工作表
技巧30 判断工作表是否为空工作表
技巧31 判断工作簿中是否存在指定名称的工作表
技巧32 按名称排序工作表
技巧33 限制工作表滚动区域
技巧34 操作受保护的工作表
技巧35 不显示双击被保护单元格时出现的提示信息框
技巧36 在指定单元格区域中禁止显示右键菜单
技巧37 只对工作表中的指定区域重新计算
技巧38 快速全选工作簿中的所有工作表
技巧39 显示唯一工作表
技巧40 轻松判断是否存在指定名称的工作簿
技巧41 新建仅包含一张工作表的工作簿
技巧42 打开工作簿时不显示更新链接对话框
技巧43 打开指定路径下的所有工作簿文件
技巧44 按特殊要求打开文本文件
技巧45 打开包含VBA代码的工作簿时禁用宏
技巧46 使用宏代码保存工作簿的3种方法
技巧47 保存指定工作表到新的工作簿文件
技巧48 禁止工作簿文件另存
技巧49 关闭工作簿不显示保存对话框
技巧50 控制工作簿只能通过代码关闭
技巧51 从未打开的工作簿中获取指定单元格内容
技巧52 定义隐藏的名称
技巧53 带“自杀”功能的工作簿
技巧54 限制工作簿的使用次数
技巧55 禁用宏则关闭工作簿
技巧56 奇偶页打印
技巧57 打印预览时不触发BeforePrint事件
第4章 使用Range对象
技巧58 在宏代码中引用单元格区域的5种方法
技巧59 获得指定行(或列)中最后一个非空单元格
技巧60 快速选择任意工作表中的区域
技巧61 随心所欲复制单元格区域
技巧62 仅复制数值到另一区域
技巧63 获取两个单元格区域的交叉区域
技巧64 联合多个单元格区域
技巧65 判断一个区域是否包含在另一个区域中
技巧66 设置字符格式
技巧67 以毫米为单位设置单元格行高列宽
技巧68 所见即所得—将数字格式的显示结果作为单元格数值
技巧69 为单元格区域添加边框的快捷方法
技巧70 高亮显示单元格区域
技巧71 动态设置单元格数据有效性序列
技巧72 使用宏代码在单元格中创建公式
技巧73 快速将单元格中的公式转换为数值
技巧74 准确判断单元格公式是否存在错误
技巧75 返回指定列的列标
技巧76 在VBA中使用数组公式
技巧77 判断单元格是否存在批注
技巧78 为单元格添加批注
技巧79 获取、修改和补充批注中的内容
技巧80 个性化批注外观
技巧81 显示图片批注
技巧82 设置批注字体
技巧83 快速判断单元格区域是否存在部分合并单元格
技巧84 合并单元格时连接每个单元格的文本
技巧85 取消合并单元格时在每个单元格中保留内容
技巧86 合并内容相同的连续单元格
技巧87 快速获得区域中最早和最后出现的数值位置
技巧88 高效的按单元格颜色计数自定义函数
技巧89 删除空单元格的所在行
技巧90 汇总不同工作表的数据区域
技巧91 汇总多个工作簿的工作表
技巧92 按指定条件自动筛选数据
技巧93 多条件筛选
技巧94 获得符合自动筛选条件的记录条数
技巧95 判断筛选结果是否为空
技巧96 复制自动筛选后的数据区域
技巧97 获得自动筛选条件
技巧98 使用高级筛选获得不重复记录
技巧99 删除空行
技巧100 判断是否选中整行
技巧101 工作表中一次插入多行
技巧102 控制插入单元格区域的格式
技巧103 批量删除奇数行
技巧104 剔除数据区域空单元格后重排数据
技巧105 超过3个关键字的数据排序
技巧106 按单元格颜色排序
技巧107 利用自定义序列进行排序
技巧108 包含合并单元格的数据列表排序
第5章 使用Shape对象
技巧109 在工作表中的指定位置添加图形对象
技巧110 为一个图形对象指定不同的宏代码
技巧111 快速对多个图形对象进行组合
技巧112 遍历工作表的图形对象
技巧113 将工作表中的图形对象另存为图片
技巧114 在员工登记表中自动插入图片
技巧115 通过链接显示VBE代码窗口
第三篇 函数与加载宏的应用
第6章 函数的应用
技巧116 输入漂亮的图形字符
技巧117 获取子字符串出现次数的简单方法
技巧118 计算两个日期的间隔
技巧119 获取指定日期所属月份的最后一天
技巧120 在注册表中记录工作簿的使用情况
技巧121 获取指定数据在数组中的位置
技巧122 获取指定数据在数组中出现的次数
技巧123 获取数组的维数
技巧124 改变动态二维数组的“行”边界
技巧125 跳过四舍五入的“陷阱”
技巧126 自动填写匹配的内容
技巧127 汉字和区位码的转换
技巧128 定制自定义函数的信息
第7章 加载宏的应用
技巧129 隐藏工作簿中的所有工作表
技巧130 Excel加载宏的加载
技巧131 动态载入加载宏
技巧132 定制加载宏信息
技巧133 定制加载宏的菜单和工具栏
技巧134 定制打开Excel文档时的启动界面
技巧135 加载宏中工作表的妙用
第四篇 交互式设计
第8章 使用消息框
技巧136 显示简单的信息提示
技巧137 定制个性化的消息框
技巧138 获得消息框的返回值
技巧139 在消息框中排版
技巧140 对齐消息框中显示的信息
技巧141 自动关闭的消息框
第9章 简单的数据输入
技巧142 为用户提供简单的输入框
技巧143 防止用户在输入框中输入错误信息
技巧144 使用对话框获取区域地址
技巧145 打造更安全的密码输入界面
第10章 内置对话框
技巧146 活用Excel的内置对话框
技巧147 获取用户选定文件的文件名
技巧148 使用“另存为”对话框备份文件
第11章 菜单和工具栏
技巧149 自定义Excel菜单栏
技巧150 创建图表自定义菜单
技巧151 定制右键快捷菜单
技巧152 创建自定义工具栏
技巧153 为工具栏按钮添加自定义图标
技巧154 自定义工作簿标题和图标
技巧155 屏蔽工具栏上的“键入需要帮助的问题”下拉框
技巧156 禁用工具栏的自定义功能
技巧157 恢复Excel的菜单和工具栏
第12章 控件的应用
技巧158 遍历控件的多种方法
技巧159 限制文本框的输入
技巧160 为文本框添加右键快捷菜单
技巧161 文本框自动输入
技巧162 自动选择文本框内容
技巧163 设置文本框的数据格式
技巧164 将光标返回文本框中
技巧165 在组合框和列表框中添加列表项
技巧166 设置多列组合框和列表框
技巧167 输入时逐步地提示信息
技巧168 去除列表框数据源的重复值和空格
技巧169 使用代码在工作表中添加控件
技巧170 使控件跟随活动单元格
技巧171 使用Listview控件显示数据
技巧172 使用TreeView控件显示层次
技巧173 使用Spreadsheet控件显示数据
技巧174 使用AniGif控件显示GIF动画图片
技巧175 使用ShockwaveFlash控件播放Flash文件
技巧176 解决微调框最小变动量小于1的问题
技巧177 使标签控件文字垂直居中对齐
技巧178 制作进度条
技巧179 不打印工作表中的控件
技巧180 自动注册新控件
第13章 用户窗体的应用
技巧181 调用非模式用户窗体
技巧182 在用户窗体标题栏上添加图标
技巧183 制作欢迎界面窗体
技巧184 在用户窗体标题栏上添加最大化和最小化按钮
技巧185 禁用用户窗体标题栏的关闭按钮
技巧186 在用户窗体框架中使用滚动条
技巧187 制作年月选择窗体
技巧188 调整用户窗体的显示位置
技巧189 在用户窗体上显示图表
技巧190 在用户窗体运行时拖动控件
技巧191 使用自定义颜色设置用户窗体颜色
第五篇 文件系统操作
第14章 目录和文件操作
技巧192 设定“打开”对话框的默认路径和文件名
技巧193 判断文件或文件夹是否存在
技巧194 顺序搜索文件
技巧195 获取常用的系统路径
技巧196 灵活处理指定的文件
技巧197 操作文件夹
第15章 文件的输入输出
技巧198 读取未打开的Excel文件内容
技巧199 判断文件是否处于锁定状态
技巧200 读写文本文件
技巧201 读写二进制文件
技巧202 使用FileSystemObject对象
第六篇 数据库应用
第16章 ADO应用
技巧203 在SQL 语句中快速插入变量
技巧204 动态创建Access 数据库文件
技巧205 获取数据库所有表的名称
技巧206 动态建立数据表
技巧207 添加主键
技巧208 向表中添加字段
技巧209 向表中增加并更新记录
技巧210 批量删除数据库中的记录
技巧211 批量修改数据库中的记录
技巧212 在数据库中存储相片
技巧213 制作带相片的学生证
技巧214 从多重表中提取信息
技巧215 Excel与Access数据库互动
技巧216 在数据库中创建视图
技巧217 动态创建链接表
技巧218 使用无表记录集分析数据
技巧219 记录集的实体化操作
技巧220 查询文本文件中的数据
技巧221 轻松导入VFP数据表
技巧222 有用的交叉表查询
技巧223 不打开工作簿获取工作表的名称
技巧224 在数组中存储查询结果
技巧225 使用内、外连接实现字段配对
技巧226 复杂的多类型表内连接关联查询
技巧227 生成各种统计报表
第七篇 高级编程
第17章 Excel与Internet
技巧228 创建和打开超链接
技巧229 映射网络驱动器
技巧230 获取外网和本地IP地址
技巧231 使用Lotus Notes发送E-mail
技巧232 了解HTML及DOM对象
技巧233 制作简易的网页浏览器
技巧234 自动登录到网页
技巧235 网页查询及下载
技巧236 使用QueryTable下载网页数据
第18章 Excel操作XML
技巧237 快速创建XML文件
技巧238 转换MDB文件为XML文件
技巧239 定制自己的Excel RSS阅读器
第19章 操作其他的Office应用程序
技巧240 透视前期绑定与后期绑定技术
技巧241 将电子表格数据通过Outlook邮件发送
技巧242 将电子表格数据输出到Word新文档
技巧243 将电子表格数据输出到PowerPoint演示稿
第20章 使用类模块
技巧244 子类化实现控件数组
技巧245 捕获包含公式的单元格的值改变
技巧246 设置类的默认成员
技巧247 实现可列举的类成员
技巧248 实现用户窗体菜单
技巧249 构建多态类
第21章 VBE相关操作
技巧250 判断指定工作簿中是否包含宏代码
技巧251 快速删除指定工作簿中的宏代码
技巧252 快速列出模块中的所有过程
技巧253 自动添加模块和过程
技巧254 建立事件过程的简易方法
技巧255 过程更新策略
技巧256 自动添加用户窗体及控件
技巧257 巧妙的VBE陷阱
技巧258 检索和设置工程引用
技巧259 自动设置信任对VBE的访问
技巧260 轻松打开受密码保护的项目
技巧261 利用保护项目的两把锁
第八篇 代码调试及优化
第22章 代码调试
技巧262 断点调试
技巧263 使用Debug对象
技巧264 使用“立即窗口”
技巧265 使用“本地窗口”
技巧266 使用“监视窗口”
第23章 错误处理
技巧267 捕捉错误
技巧268 处理错误
技巧269 退出错误处理过程
技巧270 生成错误
技巧271 错误处理的层次
技巧272 强制声明变量
第24章 代码优化
技巧273 使用工作表函数或方法
技巧274 减少对象的激活或选择
技巧275 避免使用Variant类型
技巧276 减少“.”的数量
技巧277 用数组代替Range
技巧278 让代码“专注”执行
技巧279 表示单元格、区域或其他集合对象的方法
附录
附录A VBA函数参考
附录B Excel工作表函数参考
附录C 规范与限制
附录D Excel相关的网站推荐
附录E 光盘内容介绍
书摘插图
绪论
VBA是集成在Microsoft Office应用程序中的一种程序设计语言,能够实现Office自动化,从而极大地提高工作效率。
本篇从认识VBA开始,简单地介绍VBA技术及其特点、优势、功能和作用,然后介绍VBA在Excel中的应用,并简要地概述Excel VBA的框架,接着重点讲述学习Excel VBA的方法和思路,最后列出Excel VBA用户的水平层级及相关的知识点。
01VBA技术概览
VBA(即Visual Basic for Application)是一种程序设计语言,集成在称做宿主应用程序的具体应用软件中,为有效地利用宿主应用程序的功能以及拓展宿主应用程序提供了强大的工具。
01-1VBA与VB
VBA与VB(即Visual Basic)的开发环境相似,基本的语法原理相同,VB所支持对象的多数属性和方法VBA也支持,只是在事件或属性的特定名称方面稍有差异,因而VBA具有与VB编程系统相同的强大功能。不同之处在于不能使用VBA创建独立运行的应用程序,VBA代码只能与宿主应用程序一起使用,需要有宿主应用程序的支持。
01-2VBA与宏
一组VBA指令的集合形成了宏。宏能够自动地执行宿主应用程序的功能,一次性完成宿主应用程序的多项操作,或者扩展宿主应用程序的现有功能。
01-3VBA的主要特点和优势
(1)虽然不能脱离宿主应用程序的环境,但是VBA提供了一组基于VB开发系统的高级编程工具,有完整的集成开发环境(DE),功能强大,不需要应用其他的工具创建解决方案。同时VBA与宿主应用程序紧密整合,不必从头开始创建解决方案,能够充分地利用宿主应用程序自身的功能,便于快速开发。
(2)使用VBA创建的解决方案没有脱离用户已熟悉的应用程序环境,更容易被用户所接受。同时解决方案与应用程序界面保持一致,很少甚至无需对用户进行培训。
(3)使用VBA提供的功能,能够在应用程序使用的过程中执行。并且能够将使用VBA代码编写的通用程序和自定义函数制作成通用的加载项,在不同的场合重复使用。
(4)VBA简单易学,易于使用。VBA源自VB,而VB本身就是一种便于快速开发的语言,不仅提供了强大的编程能力,而且易于学习和使用,了解VB的用户可以迅速地转移到VBA中来。同时,宿主应用程序提供的录制宏功能,不仅为用户提供了一种学习应用程序编程模型的简单方法,而且能迅速地获得并应用满足要求的VBA代码。
(5)VBA很灵活,根据用户的使用习惯和对宿主应用程序的了解程度,同样的目的有多种解决的方式,使得复杂的事情能够得到非常容易的处理。
(6)VBA为不同的应用程序提供了统一的语言和开发环境,因此在某一个应用程序中学习和掌握了VBA后,可以很容易地将其运用到其他的内嵌有VBA的应用程序中,用户只需要熟悉其他的应用程序的对象模型即可。
01-4VBA的主要功能和作用
(1)使用VBA利用其宿主应用程序的功能,实现功能的整合,也能够自动地进行任何通过键盘、鼠标或者菜单完成的操作,特别是大量的重复进行的操作,从而提高了工作的效率。
(2)使用VBA定制其宿主应用程序,可以精确地满足特定的需求。同时也能够使用VSA来扩展其宿主应用程序,增强某项功能或者开发宿主应用程序没有提供的功能,以实现特定的功能要求。
(3)使用VBA能够操纵宿主应用程序的用户界面,定制其菜单和工具栏,也能够创建自定义对话框和用户窗体,使宿主应用程序作为“后台”,从而“封装”宿主应用程序。
(4)使用VBA能够创建类,从而可以使用自定义的对象。
(5)使用VBA能够操作注册表,并且将VBA与Windows API结合使用,从而创建功能强大的应用程序。
(6)能整合使用VBA的不同的应用程序,与多个应用程序进行交互,从而更容易和更紧密地共享应用程序间的数据。同时可利用不同应用程序独有或擅长的功能,真正地实现功能和效率的根本性提高。
01-5VBA的未来
经过10多年的应用和发展,VBA已经有了很深厚的基础,放弃或者取代VBA将会是一个漫长的过程。虽然Microsoft可能不再积极地在VBA语言中添加新功能,但这并不意味着Microsoft将停止支持VBA。可以预料,在以后的0ffice版本中仍然会支持VBA,就像10多年前的Excel宏表一样。并且从VBA中获得的知识也能够更好地帮助读者向其他的开发工具过渡。
……