当前位置:首页 > 工业技术
Excel VBA程序开发自学宝典  第3版
Excel VBA程序开发自学宝典  第3版

Excel VBA程序开发自学宝典 第3版PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:罗刚君著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121240324
  • 页数:506 页
图书介绍:《Excel VBA程序开发自学宝典(第3版)》是VBA入门与提高的经典教材。全书分上下两篇,上篇包含入门知识,对VBA的基础理论、语法规则、编写思路、代码优化思路等都提供了详尽的理论阐述和案例演示。下篇包含进阶知识,提供窗体设计、正则表达式、字典、FileSystemObject、类模块、注册表、功能区设计、开发加载宏、封装代码等高级应用。本书基于Excel 2010撰写,不过代码可在Excel 2007、Excel 2010和Excel 2013中通用。
《Excel VBA程序开发自学宝典 第3版》目录

上篇 1

第1章 初步感受VBA的魅力 1

1.1 批量任务一键执行 1

1.1.1 准备工作 1

1.1.2 程序测试 1

1.1.3 案例点评 2

1.2 多工作簿自动汇总 2

1.2.1 案例需求 2

1.2.2 程序测试 3

1.2.3 案例点评 3

1.3 浅谈VBA优势 3

1.3.1 批量执行任务 3

1.3.2 将复杂的任务简单化 3

1.3.3 提升工作表数据的安全性 4

1.3.4 提升数据的准确性 4

1.3.5 完成Excel本身无法完成的任务 4

1.3.6 开发专业程序 4

第2章 VBA程序入门 5

2.1 如何存放代码 5

2.1.1 认识模块 5

2.1.2 管理模块 6

2.2 如何产生代码 7

2.2.1 复制现有的代码 7

2.2.2 录制宏 7

2.2.3 手工编写代码 9

2.2.4 从模板中获取代码 10

2.3 如何调用代码 10

2.3.1 F5键 10

2.3.2 Alt+F8组合键 11

2.3.3 自定义快捷键 12

2.3.4 按钮 13

2.3.5 菜单 13

2.4 如何保存代码 13

2.4.1 工作簿格式 13

2.4.2 解决代码丢失问题 14

2.4.3 显示文件扩展名 14

2.5 如何放行代码 15

2.6 如何查询代码帮助 17

2.6.1 调用帮助系统 17

2.6.2 为什么查看不了帮助 18

第3章 VBA的程序结构分析 19

3.1 子过程的结构 19

3.1.1 认识程序结构 19

3.1.2 为VBA程序添加注释 20

3.2 子过程的作用范围 20

3.2.1 何谓作用范围 21

3.2.2 公有过程与私有过程的区别 21

3.3 过程的命名规则 22

3.4 过程的参数 22

3.5 过程的执行流程 22

3.5.1 正常的执行流程 23

3.5.2 改变程序的执行流程 23

3.6 中断过程 24

3.6.1 结束过程:End Sub 24

3.6.2 中途结束过程:Exit sub 24

3.6.3 中途结束一切:End 24

3.6.4 暂停过程:Stop 24

3.6.5 手动暂停程序:Ctrl+Break 25

第4章 VBA四大基本概念 26

4.1 Excel的对象 26

4.1.1 什么是对象 26

4.1.2 对象与对象集合 27

4.1.3 对象的层次结构 29

4.1.4 父对象与子对象 30

4.1.5 活动对象 31

4.2 对象的方法和属性 32

4.2.1 属性与方法的区别 32

4.2.2 查询方法与属性的两种方法 33

4.2.3 方法与属性的应用差异 34

4.3 对象的事件 36

4.3.1 什么是事件 36

4.3.2 事件的分类及其层级关系 37

4.3.3 工作簿事件与工作表事件一览 37

4.3.4 工作簿与工作表事件的作用对象 39

4.3.5 快速掌握事件过程 41

4.3.6 何时需要使用事件过程 41

第5章 通过变量强化程序功能 42

5.1 数据类型 42

5.1.1 为什么要区分数据类型 42

5.1.2 认识VBA的数据类型 42

5.2 声明变量 44

5.2.1 变量的定义 44

5.2.2 变量的声明方式 44

5.2.3 变量的赋值方式与初始值 46

5.2.4 如何确定变量的数据类型正确 47

5.2.5 正确声明变量的数据类型的优势 47

5.2.6 变量的作用域 49

5.2.7 变量的生存周期 50

5.3 对象变量 50

5.3.1 如何区分对象变量和数据变量 51

5.3.2 对变量赋值 51

5.3.3 使用对象变量的优势 52

5.4 声明常量 53

5.4.1 常量的定义与用途 54

5.4.2 常量的声明方式 54

5.4.3 常量的命名规则 55

第6章 深入剖析常见对象的引用方式 56

6.1 关于对象 56

6.1.1 对象的结构 56

6.1.2 对象与对象的集合 57

6.1.3 引用集合中的单一对象 57

6.1.4 父对象与子对象 57

6.1.5 活动对象 58

6.2 对象的简化引用 58

6.2.1 使用对象变量 58

6.2.2 使用With语句 59

6.3 单元格对象 61

6.3.1 Range(“A1”)方式引用单元格 61

6.3.2 Cells(1,1)方式引用单元格 63

6.3.3 [a1]方式引用单元格 65

6.3.4 Range(“A1”)、Cells(1,1)与[a1]引用单元格方式比较 65

6.3.5 Selection与ActiveCell:当前选区与活动单元格 66

6.3.6 已用区域与当前区域 67

6.3.7 SpecialCells:按条件引用区域 68

6.3.8 CurrentArray:引用数组区域 70

6.3.9 Resize:重置区域大小 70

6.3.1 0 Offset:根据偏移量引用新区域 71

6.3.1 1 Union:多区域合集 73

6.3.1 2 Intersect:单元格、区域的交集 74

6.3.1 3 End:引用源区域的区域尾端的单元格 75

6.3.1 4 RangeFromPoint:屏幕坐标下的单元格 77

6.4 图形对象 78

6.4.1 Shapes:图形对象集合 78

6.4.2 图形对象的名称 79

6.4.3 DrawingObjects:隐藏的图形对象集合 80

6.5 表对象 81

6.5.1 表的类别 81

6.5.2 Worksheets:工作表集合 82

6.5.3 引用工作表子集 82

6.5.4 ActiveSheet:活动表 83

6.5.5 工作表的特性 83

6.6 工作簿对象 84

6.6.1 工作簿格式与特性 84

6.6.2 Workbooks:工作簿集合 84

6.6.3 引用工作簿子集 84

6.6.4 活动工作簿 85

第7章 常用语句的语法剖析 86

7.1 创建输入框 86

7.1.1 Application.lnputbox方法 86

7.1.2 基本语法 86

7.1.3 案例应用 87

7.2 条件判断语句 91

7.2.1 IIF函数的语法与应用 91

7.2.2 IIF函数的限制 95

7.2.3 IF Then语句的语法详解 95

7.2.4 IF Then应用案例 96

7.2.5 IF Then Else语句的语法与应用 97

7.2.6 多条件嵌套的条件判断语句 99

7.2.7 Select Case语法详解 103

7.2.8 Select Case与IF Then Else之比较 107

7.2.9 借用Choose函数简化条件选择 107

7.3 循环语句 109

7.3.1 For Next语句 109

7.3.2 For Each Next语句 116

7.3.3 Do Loop语法详解 122

7.4 错误处理语句 129

7.4.1 错误类型与原因 130

7.4.2 Err对象及其属性、方法 130

7.4.3 认识Error函数 131

7.4.4 On Error GoTo line 132

7.4.5 On Error Resume Next 135

7.4.6 On Error GoTo O 139

7.5 选择文件与文件夹 140

7.5.1 认识FileDialog对象 140

7.5.2 选择路径 141

7.5.3 选择文件 142

7.5.4 按类型选择文件 143

第8章 让代码自动执行 146

8.1 让宏自动执行 146

8.1.1 Auto自动宏 146

8.1.2 升级版自动宏:事件 147

8.1.3 事件的禁用与启用 149

8.1.4 事件的特例 150

8.2 工作表事件应用案例 152

8.2.1 在状态栏提示最大值的单元格地址 152

8.2.2 快速录入出勤表 153

8.2.3 在状态栏显示选区的字母、数字、汉字个数 154

8.2.4 实时监控单元格每一次编辑的数据与时间 156

8.2.5 利用数字简化公司名输入 158

8.2.6 录入数据时自动跳过带公式的单元格 160

8.2.7 对选择区域进行背景着色 161

8.3 工作簿事件应用案例 162

8.3.1 新建工作表时自动设置页眉 163

8.3.2 未汇总则禁止打印与关闭工作簿 164

8.3.3 为所有工作表设计一个阅读模式 165

8.3.4 设计未启用宏就无法打开的工作簿 167

第9章 综合应用案例 170

9.1 Application应用案例 170

9.1.1 计算字符表达式 170

9.1.2 合并相同且相邻的单元格 171

9.1.3 在指定时间提示行程安排 173

9.1.4 模拟键盘快捷键打开高级选项 174

9.1.5 使用快捷键合并与取消单元格 175

9.1.6 查找至少两月未付货款的客户名称 177

9.2 Range对象应用案例 179

9.2.1 合并工作表 179

9.2.2 合并区域且保留所有数据 181

9.2.3 合并计算多区域的值 183

9.2.4 模糊查找公司名称并罗列出来 185

9.2.5 反向选择单元格 187

9.2.6 插入图片并调整为选区大小 189

9.2.7 提取唯一值 191

9.2.8 隐藏所有公式结果为错误的单元格 192

9.3 Coment对象应用案例 194

9.3.1 在所有批注末尾添加指定日期 194

9.3.2 生成图片批注 196

9.3.3 添加个性化批注 197

9.3.4 批量修改当前表的所有批注外观 199

9.4 WorkSheet对象应用案例 202

9.4.1 新建工作表且命名为今日日期 202

9.4.2 批量保护工作表与解除保护 203

9.4.3 为所有工作表设置水印 205

9.4.4 批量命名工作表 206

9.4.5 判断筛选条件 209

9.5 Workbook对象应用案例 211

9.5.1 拆分工作簿 212

9.5.2 每10分钟备份一次工作簿 213

9.5.3 5分钟未编辑工作簿则自动备份 215

9.5.4 记录文件打开次数 216

9.5.5 不打开工作簿而提取数据 218

9.5.6 建立指定文件夹下所有工作簿目录和工作表目录 220

第10章 编程规则与代码优化 223

10.1 代码编写规则 223

10.1.1 对代码添加注释 223

10.1.2 长代码分行 226

10.1.3 代码缩进对齐 227

10.1.4 声明有意义的变量名称 228

10.1.5 IF Then...End If类配对语句的录入方式 229

10.1.6 录入事件代码的方式 230

10.1.7 录入属性与方法的技巧 230

10.1.8 无提示的词组的录入技巧 231

10.1.9 善用公共变量 232

10.1.1 0将比较大的过程分为多个再调用 232

10.1.1 1 减少过程参数 233

10.1.1 2使用DoEvents转移控制权 233

10.1.1 3使用常量名称替代常数 233

10.1.1 4尽可能兼容Excel 2003、2010和2013版本 233

10.2 优化代码 234

10.2.1 强制声明变量 234

10.2.2 善用常量 234

10.2.3 关闭屏幕更新 234

10.2.4 利用With减少对象读取次数 235

10.2.5 利用变量减少对象读取次数 236

10.2.6 善用带$的字符串处理函数 236

10.2.7 利用数组代替单元格对象 237

10.2.8 不使用Select和Activate直接操作对象 237

10.2.9 将与循环无关的语句放到循环语句外 237

10.2.1 0利用Instr函数简化字符串判断 237

10.2.1 1 使用Replace函数简化字符串连接 238

第11章 利用参数强化过程 240

11.1 什么是参数 240

11.1.1 参数的概念与用途 240

11.1.2 参数的语法结构 240

11.2 设计带有参数的Sub过程 241

11.2.1 必选参数 241

11.2.2 可选参数 243

11.2.3 不确定数量的参数 244

11.3 参数的赋值方式 245

11.3.1 按位置赋值 245

11.3.2 按名称赋值 246

11.3.3 方法的参数 246

第12章 编程的捷径 248

12.1 录制宏 248

12.1.1 录制宏的目的 248

12.1.2 录制宏的方法 249

12.2 查看提示 251

12.2.1 属性与方法列表 251

12.2.2 参数提示 252

12.3 调用笔记 252

12.3.1 笔记的对象 252

12.3.2 笔记的记录方式 253

12.4 使用工具模板 254

12.4.1 代码百宝箱 254

12.4.2 开发VBA插件 255

下篇 256

第13章 利用数组提升程序效率 256

13.1 基本概念 256

13.1.1 何谓数组 256

13.1.2 数组的特点 256

13.1.3 一维数组 257

13.1.4 二维数组 259

13.1.5 数组的参数 260

13.1.6 声明数组变量 261

13.1.7 动态数组与静态数组的分别 263

13.1.8 释放动态数组的存储空间 268

13.2 数组函数 268

13.2.1 用函数创建数组 268

13.2.2 获取数组元素 270

13.2.3 判断变量是否为数组 270

13.2.4.转置数组 270

13.2.5 获取数组的上标与下标 272

13.2.6 转换文本与数组 273

13.2.7 筛选数组 275

13.3 案例分析 276

13.3.1 将指定区域的单词统一为首字母大写 276

13.3.2 罗列不及格学生的姓名、科目和成绩 277

13.3.3 跨表搜索学员信息 278

13.3.4 将职员表按学历拆分成多个工作表 280

13.3.5 将选区中的数据在文本与数值之间互换 282

13.3.6 获取两列数据的相同项 283

13.3.7 无人值守的多工作簿自动汇总 285

第14章 正则表达式与VBA 288

14.1 何谓正则表达式 288

14.1.1 概念 288

14.1.2 特点 288

14.1.3 调用方式 289

14.2 语法基础 290

14.2.1 调用正则表达式的基本格式 290

14.2.2 正则表达式的对象、属性和方法 291

14.2.3 匹配的优先顺序 294

14.2.4 借用元字符强化搜索功能 295

14.3 正则表达式应用 311

14.3.1 乱序字符串取值并汇总 311

14.3.2 计算建筑面积 312

14.3.3 取括号中的数字 313

14.3.4 去除字符串首尾的空白字符 314

14.3.5 将字符串中的多段数字分列 315

14.3.6 获取E-mail地址 315

14.3.7 提取文件的路径与文件名 316

14.3.8 汇总人民币 317

14.3.9 开发分列函数 318

14.3.1 0删除重复字词 319

第15章 详解字典应用 321

15.1 Dictionary对象基础 321

15.1.1 Dictionary对象的调用 321

15.1.2 Dictionary的特点 323

15.1.3 Dictionary对象的属性与方法 323

15.2 Dictionary对象的应用技巧 328

15.2.1 利用字典创建三级选单 328

15.2.2 分类汇总 330

15.2.3 对多列数据相同者应用背景色 331

15.2.4 按姓名计数与求产量平均值 332

15.2.5 按品名统计半年内的产量合计 334

第16章 开发自定义函数 335

16.1 自定义函数的功能和语法 335

16.1.1 Function过程与Sub过程的区别 335

16.1.2 Function过程的语法 335

16.1.3 自定义函数的命名规则 337

16.2 开发不带参数的Function过程 337

16.2.1 判断活动工作簿是否存在图形对象 337

16.2.2 计算公式所在单元格的页数 338

16.3 开发带有一个参数的Function过程 339

16.3.1 在不规则的合并单元格中执行合计 339

16.3.2 建立活动工作簿的表目录 341

16.4 开发带有两个参数的Function过程 342

16.4.1 分段提取数值 342

16.4.2 获取最大值、最小值或众数的地址 343

16.4.3 汇总前N大值 344

16.5 开发复杂的Function过程 345

16.5.1 合并区域的值或者数组 345

16.5.2 按单元格背景颜色进行条件求和 347

16.5.3 按颜色查找并返回数组 348

16.5.4 合计分隔符左边的所有数值 350

16.6 编写函数帮助 351

16.6.1 MacroOptions方法的语法 351

16.6.2 为函数分类及添加说明 352

第17章 设计窗体 354

17.1 UserForm简介 354

17.1.1 窗体与控件的用途 354

17.1.2 插入窗体与控件的方法 354

17.1.3 使用Excel 5.0对话框 355

17.2 窗体控件一览 355

17.2.1 标签 355

17.2.2 文本框 356

17.2.3 命令按钮 356

17.2.4 复合框 356

17.2.5 列表框 356

17.2.6 复选框 356

17.2.7 选项按钮 357

17.2.8 分组框 357

17.2.9 切换按钮 357

17.2.1 0 多页控件 357

17.2.1 1 滚动条 357

17.2.1 2 图像 357

17.2.1 3 RefEdit 357

17.2.1 4附加控件 357

17.3 设置控件属性 358

17.3.1 调整窗体控件位置与大小 358

17.3.2 设置控件的顺序 358

17.3.3 共同属性与非共同属性 358

17.3.4 设置颜色属性 359

17.3.5 设置控件的宽度与高度 360

17.3.6 设置Picture属性 360

17.3.7 设置RowSource属性 361

17.3.8 设置Flash动画 362

17.4 窗体与控件的事件 362

17.4.1 UserForm对象的事件 362

17.4.2 激活窗体时将所有工作表名称导入到列表框中 363

17.4.3 双击时关闭窗体 365

17.4.4 窗体永远显示在屏幕的左上角 365

17.4.5 按下左键移动窗体、按下右键移动控件 366

17 4 6控件事件介绍 368

17.4.7 在窗体中建立超链接 368

17.4.8 鼠标移过时切换列表框数据 370

17.4.9 让输入学号的文字框仅能录入6位数字 372

17.4.1 0运行窗体期间用鼠标调整文字框大小 373

17.4.1 1 为窗体中所有控件设置帮助 375

17.5 窗体的综合应用案例 377

17.5.1 设计登录界面 377

17.5.2 权限认证窗口 378

17.5.3 设计计划任务向导 380

17.5.4 设计动画帮助 383

17.5.5 用窗体浏览图片 383

17.5.6 设计多表录入面板 385

17.5.7 多条件高级查询 387

第18章 处理文件与文件夹 390

18.1 认识FSO对象、属性与方法 390

18.1.1 FSO对象的调用方式 390

18.1.2 FSO的对象 391

18.1.3 FSO常用对象的方法与属性 391

18.2 用FSO处理文件与文件夹 394

18.2.1 让D盘中所有隐藏的文件夹显示出来 394

18.2.2 遍历子文件夹创建文件目录 395

18.2.3 删除D盘中大小为0的文件夹 396

18.2.4 罗列最近3天修改过的所有文件的名称 397

第19章 认识类和类模块 399

19.1 类模块基础 399

19.1.1 类的概念与用途 399

19.1.2 声明与调用类 399

19.2 类与应用程序级事件 401

19.2.1 在状态栏显示当前行的最大值与最小值地址 401

19.2.2 录入数据时自动将“M”后面的数字“2”显示为上标 403

19.3 类模块与窗体控件 404

19.3.1 何时需要使用类 404

19.3.2 为按钮批量指定MouseMove事件 404

19.3.3 开发颜色面板 406

第20章 VBA与注册表 409

20.1 VBA对注册表的控制方式 409

20.1.1 什么是注册表 409

20.1.2 VBA操作注册表的方法 409

20.2 注册表的应用 411

20.2.1 记录当前工作簿最后一次打开时间 411

20.2.2 创建文件目录时自动记忆上一次的路径 412

20.2.3 让是否显示零值的设置适用于所有工作表 413

20.3 注册表函数的缺点与改善方法 415

20.3.1 VBA操作注册表的优缺点 415

20.3.2 借用脚本自由控制注册表 415

20.3.3 禁止使用U盘 416

第21章 Ribbon功能区设计 418

21.1 功能区开发基础 418

21.1.1 Ribbon的特点 418

21.1.2 功能区的组件图示 418

21.1.3 手工定制功能区 419

21.1.4 认识Ribbon代码编辑器 419

21.1.5 获取内置按钮图标 420

21.2 Ribbon定制之语法分析 421

21.2.1 功能区代码的结构 421

21.2.2 显示与隐藏功能区:ribbon 422

21.2.3 隐藏选项卡:tab 423

21.2.4 创建新选项卡:tab 424

21.2.5 创建新组:group 425

21.2.6 创建对话框启动器:dialogBoxLauncher 427

21.2.7 在组中添加命令按钮:button 429

21.2.8 创建切换按钮:toggleButton 430

21.2.9 标签与复选框:labelControl/checkBox 432

21.2.1 0在按钮之间添加分隔条:separator 433

21.2.1 1 创建弹出式菜单:menu 434

21.2.1 2创建拆分按钮:SplitButton 435

21.2.1 3 创建下拉列表:DropDown 437

21.2.1 4创建编辑框:editBox 438

21.2.1 5锁定或隐藏内置功能 439

21.3 使用回调函数强化功能区 440

21.3.1 为什么需要使用回调函数 440

21.3.2 回调函数详解 440

21.3.3 创建在每月的1日到3日才能使用的按钮 443

21.3.4 创建按下与弹起时自动切换图标的按钮 444

21.3.5 创建一个能显示图形对象数量的标签 446

21.3.6 在功能区中快速查找 447

21.3.7 在组的标签处显示问候语 449

21.3.8 调用大图片创建下拉菜单 451

21.3.9 通过复选框控制错误标识的显示状态 454

21.3.1 0在功能区中创建工作表目录 455

21.4 使用模板 457

21.4.1 模板的重要性 457

21.4.2 模板的使用方法 458

21.5 制作两个模板 458

第22章 开发通用插件 462

22.1 关于加载宏 462

22.1.1 加载宏的特点 462

22.1.2 为什么使用加载宏 462

22.1.3 加载宏管理器 463

22.1.4 加载内置的加载宏 464

22.1.5 安装与卸载自定义加载宏 464

22.2 关于加载项 465

22.2.1 加载项的分类 465

22.2.2 加载项的开发方式 465

22.3 开发插件的准备工作 466

22.3.1 加载宏的格式 466

22.3.2 引用加载宏的数据 466

22.3.3 设计加载宏的附加工作 466

22.4 开发公/农历日历控件 467

22.4.1 确认程序需要具备的功能 467

22.4.2 定义公历转农历的函数 467

22.4.3 设计日期输入器窗体 468

22.4.4 编写窗体初始化代码 469

22.4.5 实现输入器与工作表交互 471

22.4.6 设计帮助 472

22.4.7 定制功能区菜单 473

22.4.8 测试并发布插件 474

22.5 开发文本与数值互换插件 475

22.5.1 确认所需具备的功能 475

22.5.2 编写主程序 475

22.5.3 定制功能区菜单 476

22.5.4 测试代码并发布插件 477

第23章 代码封装技巧 478

23.1 封装自定义函数 478

23.1.1 安装VB 6.0企业版 478

23.1.2 封装自定义函数 479

23.1.3 安装自定义函数 480

23.2 封装Sub过程 480

23.2.1 建立VB工程 481

23.2.2 添加引用 481

23.2.3 写入代码 482

23.2.4 发布COM加载项 484

23.2.5 安装COM加载项 484

23.3 设计安装软件 485

23.3.1 程序选择 485

23.3.2 使用程序向导制作安装软件 485

23.3.3 测试安装软件 488

第24章 开发逐步提示的数据录入助手 490

24.1 罗列需求 490

24.1.1 插件功能描述 490

24.1.2 插件格式需求 490

24.2 设计窗体 491

24.2.1 设计选项窗体 491

24.2.2 设计数据录入助手窗体 491

24.3 编写代码 492

24.3.1 选项窗体代码 492

24.3.2 数据录入助手窗体代码 494

24.3.3 应用程序级事件代码 499

24.4 创建功能区菜单 500

24.4.1 创建功能区菜单 500

24.4.2 回调过程 501

24.5 发布插件与测试功能 502

24.5.1 发布插件 502

24.5.2 测试插件功能 503

返回顶部