《EXCEL VBA应用开发 技巧精华版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:韩小良,韩舒婷编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:9787121046414
  • 页数:345 页
图书介绍:本书结合500多个精选实例,详细介绍了Excel VBA的基础知识和应用技巧,包括Excel VBA编程基础知识,操作、管理Excel VBA常见对象(Application对象、Workbook对象、Worksheet对象、Range对象、窗体控件对象及对象事件),创建自定义菜单和自定义工具栏,利用Excel VBA处理工作表数据、操作文件和文件夹及保护工作簿应用程序等。本书适合于具有Excel基础知识和Excel VBA基础知识的人员阅读,特别是想要学习Excel VBA但却无从下手,想尽快掌握Excel VBA基本知识的人员阅读,也适用于开发公司信息管理应用系统的人员阅读。本书可作为大专院校相关专业本科生、研究生和MBA学员的教材或参考书。

第1章 了解Excel宏 1

1.1 录制宏和保存宏 2

1.1.1 录制宏的基本方法 2

1.1.2 录制宏应注意的事项 2

1.2 为宏设置快捷键 3

1.2.1 重新为宏设置快捷键 3

1.2.2 更改宏的快捷键 3

1.3 查看录制的宏 4

1.3.1 查看保存在录制宏工作簿里的宏 4

1.3.2 查看保存在新工作簿里的宏 4

1.3.3 查看保存在个人宏工作簿中的宏 4

1.4 编辑修改录制的宏 5

1.5 运行录制的宏 6

1.5.1 使用快捷键运行宏 6

1.5.2 使用宏对话框运行宏 6

1.5.3 在VBE窗口中运行宏 6

1.5.4 使用Excel窗体运行宏 6

1.5.5 使用ActiveX控件运行宏 7

1.5.6 使用自定义按钮运行宏 9

1.5.7 使用图形对象运行宏 10

1.5.8 在其他过程中运行录制的宏 10

1.6 删除录制的宏 11

1.6.1 删除指定的录制的宏 11

1.6.2 将录制的宏连同保存宏的模块一并删除 11

第2章 使用VBE工具 12

2.1 VBE窗口的结构 13

2.2 设置VBE编辑器属性 13

2.2.1 设置“编辑器”选项卡项目 13

2.2.2 设置“编辑器格式”选项卡项目 15

2.2.3 设置“通用”选项卡项目 16

2.2.4 设置“可连接的”选项卡项目 17

2.3 VBE窗口的菜单栏和工具栏 17

2.3.1 VBE窗口的菜单栏 17

2.3.2 VBE窗口的工具栏 17

2.4 工程资源管理器窗口的结构 18

2.5 操作模块 18

2.5.1 插入模块 18

2.5.2 更改模块的名称 18

2.5.3 删除模块 19

2.6 使用代码窗口 19

2.6.1 代码窗口的结构 19

2.6.2 在代码窗口中只显示某个过程 20

2.6.3 显示模块中的所有过程 20

2.6.4 快速定位到某个过程 20

2.7 使用立即窗口 20

2.7.1 在立即窗口中查看计算结果 20

2.7.2 在立即窗口中执行命令 21

2.8 使用本地窗口 21

2.8.1 本地窗口的结构 21

2.8.2 通过本地窗口检查程序的变量定义和运算结果 21

2.9 使用VBE的快捷键 22

2.9.1 使用代码编辑键 22

2.9.2 使用代码窗口常用键 22

2.9.3 使用代码窗口定位键 23

2.9.4 使用代码窗口快捷键 23

2.9.5 代码窗口中可使用的菜单快捷键 24

2.9.6 工程资源管理器中的键盘快捷键 25

2.9.7 属性窗口中的键盘快捷键 26

2.9.8 窗体的快捷键 27

第3章 获取VBA帮助信息 28

3.1 获取帮助信息 29

3.2 通过Visual Basic帮助窗口的目录得到帮助 30

3.3 快速获取帮助信息 30

第4章 VBA基础语法 31

4.1 数据类型 32

4.1.1 数据类型 32

4.1.2 自定义数据类型 32

4.2 声明变量和常量 33

4.2.1 强制声明变量 33

4.2.2 定义变量应注意的事项 33

4.2.3 定义变量 33

4.2.4 使用类型标识符定义变量 34

4.2.5 定义和使用对象变量 34

4.2.6 定义模块级变量 35

4.2.7 定义公共变量 35

4.2.8 定义常量 35

4.2.9 如何使用VBA内置常量 35

4.3 定义数组 36

4.3.1 定义静态数组 36

4.3.2 定义动态数组 36

4.3.3 将数组的缺省下界设置为1 36

4.3.4 获取数组的最小下标和最大下标 37

4.4 数据运算符 37

4.4.1 赋值运算符 37

4.4.2 数学运算符 37

4.4.3 比较运算符 38

4.4.4 逻辑运算符 38

4.5 语句基本知识 38

4.5.1 写声明语句 38

4.5.2 写赋值语句 38

4.5.3 写可执行语句 39

4.6 循环语句 39

4.6.1 使用For...Next循环语句 39

4.6.2 使用For Each...Next循环语句 40

4.6.3 退出For循环 41

4.6.4 使用Do...Loop循环语句 41

4.6.5 退出Do循环 43

4.6.6 使用While...Wend循环语句 43

4.6.7 循环数组中的所有元素 43

4.6.8 循环对象集合中的所有对象 44

4.6.9 使用多重循环 44

4.7 条件控制语句 44

4.7.1 使用If条件语句 44

4.7.2 使用Select...Case语句 47

4.8 语句书写技巧 48

4.8.1 将多个语句写在一行上 48

4.8.2 将一个语句断开成数行 48

4.8.3 添加注释语句 49

4.8.4 使用With语句提高程序运行效率 49

第5章 使用工作簿函数和VBA函数 50

5.1 在VBA中使用工作簿函数 51

5.1.1 在VBA过程中调用工作簿函数 51

5.1.2 通过VBA向单元格输入工作簿函数 51

5.1.3 通过VBA向单元格输入普通公式 52

5.1.4 通过VBA向单元格输入数组公式 52

5.1.5 获取单元格中的公式表达式 52

5.1.6 判断某单元格区域是否为数组公式单元格区域的一部分 53

5.1.7 删除工作表中的所有数据,但保留所有公式 53

5.2 使用VBA内置函数 54

5.2.1 VBA函数与工作簿函数的区别 54

5.2.2 快速获取函数的参数信息 54

5.2.3 使用VBA日期和时间函数 54

5.2.4 使用VBA字符串函数 55

5.2.5 使用VBA财务函数 55

5.2.6 使用VBA数学函数 56

5.2.7 使用VBA检查函数 56

5.2.8 利用IIf函数返回两个参数中一个值 57

5.2.9 利用Choose函数从参数列表中选择并返回一个值 57

5.2.10 利用Switch函数从参数列表中选择并返回一个值 57

5.2.11 重要的VBA函数——ARRAY:快速输入数据 58

5.2.12 重要的VBA函数——ARRAY:快速输入行标题和列标题 58

5.2.13 重要的VBA函数——FORMAT格式函数 58

5.2.14 重要的VBA函数——输入函数InputBox 59

5.2.15 使用InputBox方法限制输入特定类型的数据 60

5.2.16 重要的VBA函数——输出函数MsgBox 61

5.2.17 使用不返回值的MsgBox函数 63

第6章 过程和自定义函数 64

6.1 子过程 65

6.1.1 什么是通用子过程 65

6.1.2 创建通用子过程 65

6.1.3 什么是事件子过程 65

6.1.4 创建Application对象的事件子过程 66

6.1.5 创建Chart对象的事件子过程 67

6.1.6 创建工作簿和工作表的事件子过程 67

6.1.7 创建窗体控件的事件子过程 68

6.1.8 调用子过程 68

6.1.9 调用标准模块中的子过程 69

6.1.10 调用窗体对象模块中的过程 69

6.1.11 调用工作表对象中的过程 69

6.1.12 调用工作簿对象中的过程 69

6.1.13 获取某过程中变量的计算结果 69

6.2 自定义函数 70

6.2.1 自定义函数的语法结构 70

6.2.2 创建自定义函数 70

6.2.3 设计参数可选的自定义函数 71

6.2.4 为自定义函数的可选参数指定默认值 71

6.2.5 设计参数个数不定的自定义函数 73

6.2.6 设计返回数组的自定义函数 73

6.2.7 为自定义函数添加提示信息 73

6.2.8 将自定义函数归类 74

6.2.9 在工作表中调用自定义函数 75

6.2.10 在过程中调用自定义函数 75

6.2.11 不返回函数值而直接调用自定义函数 76

6.2.12 调用保存在窗体、工作表、工作簿等对象中的自定义函数 76

第7章 操作Application对象 77

7.1 获取Excel系统信息 78

7.1.1 获取Excel版本 78

7.1.2 获取Excel的安装路径 78

7.1.3 获取当前用户名 78

7.1.4 获取启动Excel的路径 78

7.1.5 获取打开Excel文件时的默认路径 78

7.1.6 获取当前打印机的名称 79

7.1.7 获取Excel应用程序的标题文字 79

7.1.8 获取“自动恢复”临时文件的路径 79

7.2 自定义Excel窗口 79

7.2.1 修改Excel应用程序的标题文字 79

7.2.2 删除Excel应用程序的标题文字 80

7.2.3 恢复Excel应用程序的默认标题文字 80

7.2.4 删除/恢复Excel菜单项 81

7.2.5 使Excel菜单项或其命令不可操作 81

7.2.6 使Excel的工具栏或其命令按钮不可操作 82

7.2.7 隐藏和显示编辑栏 83

7.2.8 隐藏和显示标准工具栏 83

7.2.9 隐藏和显示格式工具栏 83

7.2.10 隐藏和显示状态栏 84

7.2.11 在状态栏中显示信息 84

7.2.12 将Excel全屏显示 84

7.2.13 隐藏Excel本身 85

7.2.14 改变鼠标指针形状 85

7.3 设置Excel操作选项 86

7.3.1 设置新工作簿中的工作表个数 86

7.3.2 设置工作簿的默认路径 86

7.3.3 设置保存自动恢复文件的时间间隔和保存位置 86

7.3.4 停止和启用屏幕刷新 87

7.3.5 改变手动和自动计算方式 87

7.3.6 不显示警告信息框 88

7.3.7 显示Excel的内置对话框 88

7.3.8 将厘米转换为磅 88

7.4 制定程序运行计划 89

7.4.1 使程序在指定的时间开始运行 89

7.4.2 定期运行程序以分析数据 89

7.4.3 使程序每隔一段时间就自动运行程序 90

7.4.4 OnTime方法的另一种应用:禁止改变Excel本身窗口大小 90

7.4.5 取消程序的运行计划 91

7.5 为Application对象设置事件 91

7.5.1 Application对象事件概述 91

7.5.2 利用Application对象的事件 92

7.5.3 在新建工作簿时自动执行程序 92

7.5.4 在激活任意工作簿窗口时执行程序 93

7.5.5 禁止打印打开的任何工作簿 93

第8章 操作Workbook对象 95

8.1 引用工作簿 96

8.1.1 引用打开的某个工作簿 96

8.1.2 引用当前的活动工作簿 97

8.1.3 引用当前宏代码运行的工作簿 97

8.1.4 引用新建的工作簿 97

8.1.5 引用有特定工作表的工作簿 98

8.2 获取工作簿的基本信息 98

8.2.1 获取所有打开的工作簿的名称和路径 98

8.2.2 判断工作簿是否已经被打开 99

8.2.3 判断工作簿是否已经被保存 99

8.2.4 获取工作簿上次保存的时间 100

8.2.5 获取宏代码运行的工作簿完整名称 100

8.2.6 获取宏代码运行的工作簿路径 101

8.2.7 获取宏代码运行的工作簿的带扩展名的名称 101

8.2.8 获取宏代码运行的工作簿的基础名称 101

8.2.9 获取和设置工作簿的文档属性 101

8.3 新建、打开工作簿 102

8.3.1 在当前的Excel窗口中新建一个工作簿 102

8.3.2 重新启动Excel应用程序并新建一个工作簿 102

8.3.3 打开指定的工作簿 103

8.3.4 以只读的方式打开工作簿 103

8.3.5 在不更新链接的情况下打开工作簿 103

8.3.6 打开有打开密码保护的工作簿 104

8.3.7 通过对话框打开工作簿 104

8.4 保存、关闭工作簿 104

8.4.1 保存工作簿但不关闭工作簿 104

8.4.2 另存工作簿 105

8.4.3 将工作簿指定密码保存 105

8.4.4 保存工作簿副本 105

8.4.5 关闭工作簿但不保存 106

8.4.6 关闭工作簿并保存所有更改 106

8.4.7 通过对话框指定名字和保存位置并关闭工作簿 106

8.4.8 关闭所有打开的工作簿但不保存 106

8.4.9 关闭所有打开的工作簿并保存更改 107

8.4.10 关闭所有打开的工作簿并同时关闭Microsoft Excel应用程序 107

8.5 为工作簿设置/取消保护密码 107

8.5.1 判断工作簿是否有保护 107

8.5.2 为工作簿指定保护密码 108

8.5.3 撤销工作簿的保护密码 108

8.6 自定义工作簿窗口 109

8.6.1 改变工作簿窗口的大小 109

8.6.2 拆分工作簿窗口并冻结窗格 109

8.6.3 取消工作簿窗口的拆分和冻结 110

8.6.4 隐藏和显示工作簿窗口 110

8.6.5 设定工作簿窗口的各种显示状态 110

8.6.6 重排工作簿窗口 111

8.6.7 设置工作簿的网格线格式 112

8.7 利用工作簿的事件操作工作簿 112

8.7.1 工作簿的事件 113

8.7.2 在打开工作簿时就运行程序 113

8.7.3 在关闭工作簿时就运行程序 113

8.7.4 在激活工作簿时就运行程序 114

8.7.5 在工作簿不是活动工作簿时就运行程序 114

8.7.6 在保存工作簿时就运行程序 115

8.7.7 在打印工作簿时就执行程序——制作打印日志 115

8.7.8 在打印工作簿时就执行程序——计算打印累计次数 116

8.7.9 在打印工作簿时就执行程序——禁止打印当前工作簿 116

8.7.10 在打印工作簿时就执行程序——禁止打印某个工作表 117

8.7.11 为工作簿内所有的工作表指定相同的事件处理程序 117

8.7.12 禁止删除当前工作簿内的工作表 118

8.7.13 禁止移动或复制当前工作簿内的工作表 119

8.7.14 禁止对当前工作簿内的工作表重命名 120

8.7.15 禁止在当前工作簿内插入新工作表 121

8.7.16 为当前工作簿的所有工作表设置相同的页眉和页脚 121

第9章 操作Worksheet对象 122

9.1 引用工作表 123

9.1.1 引用某个工作簿的某个工作表 123

9.1.2 引用某个工作簿中的活动工作表 124

9.1.3 引用当前活动工作簿中的活动工作表 124

9.1.4 引用当前宏代码运行的工作簿中的某个工作表 125

9.1.5 引用新建的工作表 125

9.1.6 引用工作表名称中包含有特定字符串的工作表 125

9.2 获取工作表的基本信息 126

9.2.1 获取工作表名称 126

9.2.2 获取工作簿内所有工作表的名称 126

9.2.3 判断某个表是否为普通工作表 127

9.2.4 判断指定名称的工作表是否存在 127

9.3 操作工作表 128

9.3.1 隐藏工作表并通过菜单取消隐藏 128

9.3.2 隐藏工作表但不能通过菜单取消隐藏 128

9.3.3 显示被隐藏的工作表 129

9.3.4 重命名工作表 129

9.3.5 新建工作表并重命名 130

9.3.6 在本工作簿内复制工作表 131

9.3.7 将本工作簿内的某工作表复制到一个新工作簿中 131

9.3.8 将本工作簿内的某工作表复制到另外一个打开的工作簿中 131

9.3.9 在本工作簿内移动工作表 132

9.3.10 将本工作簿内的某工作表移动到一个新工作簿中 132

9.3.11 将本工作簿内的某工作表移动到另外一个打开的工作簿中 132

9.3.12 删除工作表 133

9.3.13 保护工作表 133

9.3.14 撤销对工作表的保护 133

9.3.15 激活工作表 134

9.3.16 选择工作表 134

9.3.17 显示和隐藏指定工作表的行号和列标 134

9.3.18 禁止使用快捷菜单对工作表进行插入/删除/重命名/移动或复制操作 135

9.4 利用工作表的事件操作工作表 135

9.4.1 工作表的事件 135

9.4.2 为工作表指定事件 136

9.4.3 在激活工作表时就运行程序 137

9.4.4 在工作表为非活动时就运行程序 137

9.4.5 在工作表的单元格数据发生变化时就运行程序 138

9.4.6 在选择工作表单元格区域发生变化时就运行程序 139

9.4.7 在双击左键时就运行程序 139

9.4.8 在单击右键时就运行程序 139

9.4.9 在对工作表进行计算时执行程序 140

第10章 操作Range对象 141

10.1 引用单元格和单元格区域 142

10.1.1 使用Range属性引用某个单元格 142

10.1.2 使用Range属性引用连续的单元格区域 142

10.1.3 使用Range属性引用不连续的单元格区域 142

10.1.4 使用Range属性引用不确定的某个单元格 143

10.1.5 使用Range属性引用不确定的连续单元格区域 143

10.1.6 使用Range属性引用不确定的不连续单元格区域 143

10.1.7 使用Range属性引用单列 144

10.1.8 使用Range属性引用连续的多列 144

10.1.9 使用Range属性引用不连续的多列 144

10.1.10 使用Range属性引用单行 145

10.1.11 使用Range属性引用连续的多行 145

10.1.12 使用Range属性引用不连续的多行 145

10.1.13 通过定义名称引用单元格区域 146

10.1.14 使用Cells属性引用某个单元格 146

10.1.15 使用Cells属性引用连续的单元格区域 146

10.1.16 利用Rows属性引用连续的整行 147

10.1.17 利用Rows属性引用不连续的整行 147

10.1.18 利用Columns属性引用连续的整列 148

10.1.19 利用Columns属性引用不连续的整列 148

10.1.20 引用工作表的全部单元格 148

10.1.21 引用活动单元格 148

10.1.22 使用UsedRange属性引用已使用的单元格区域 149

10.1.23 引用被空白行和空白列包围的单元格区域 149

10.1.24 利用Offset属性动态引用某个单元格 149

10.1.25 利用Offset属性动态引用连续的单元格区域 150

10.1.26 利用Resize属性引用变化后的单元格区域 150

10.1.27 利用Union方法引用多个非连续单元格区域 151

10.1.28 引用多个单元格区域的交叉区域 151

10.1.29 引用有计算公式的所有单元格 152

10.1.30 引用隐藏的行和列 153

10.1.31 引用指定单元格区域内的所有空白单元格 153

10.1.32 引用指定单元格区域内的所有设置有数据有效性的单元格 154

10.1.33 引用指定单元格区域内的所有可见单元格 154

10.1.34 引用指定单元格区域内的所有出现错误的单元格 155

10.1.35 引用指定单元格区域内有批注的单元格 155

10.1.36 引用指定单元格区域内所有设置有条件格式的单元格 156

10.2 获取单元格和单元格区域信息 156

10.2.1 获取单元格或单元格区域的地址 156

10.2.2 获取单元格的行号 156

10.2.3 获取单元格的列标字母 157

10.2.4 获取单元格区域的起始行号和终止行号 157

10.2.5 获取单元格区域的起始列号和终止列号 158

10.2.6 利用End属性获取数据区域的最后一行行号 158

10.2.7 利用End属性获取数据区域的最前一行行号 158

10.2.8 利用End属性获取数据区域的最后一列列号 158

10.2.9 利用End属性获取数据区域的最前一列列号 158

10.2.10 判断单元格内是否输入了公式 159

10.2.11 判断单元格内是否输入了数组公式 159

10.2.12 获取单元格内的公式字符串 160

10.2.13 获取单元格的字体对象信息 160

10.2.14 获取单元格的内部对象信息 160

10.2.15 获取单元格的数据 161

10.3 设置单元格和单元格区域格式 161

10.3.1 设置单元格的字体属性 161

10.3.2 设置单元格的下划线 162

10.3.3 设置单元格字符串的一部分字符的格式 162

10.3.4 设置和删除单元格区域的边框 162

10.3.5 设置单元格的数字格式 163

10.3.6 设置单元格颜色和背景 164

10.3.7 设置单元格对齐方式 164

10.3.8 缩小单元格内容以全部显示 165

10.3.9 设置单元格的有效性规则 165

10.3.10 为单元格设置或删除超链接 166

10.3.11 为单元格添加和删除批注 167

10.3.12 为单元格区域定义和删除名称 167

10.3.13 根据单元格内容自动调整列宽和行高 168

10.3.14 设置单元格的行高和列宽 168

10.4 操作单元格和单元格区域 169

10.4.1 隐藏行和列 169

10.4.2 合并和取消合并单元格 170

10.4.3 删除单元格的全部信息 170

10.4.4 删除单元格的公式和值 170

10.4.5 删除单元格的格式 170

10.4.6 删除单元格的批注 170

10.4.7 插入单元格 170

10.4.8 插入整行和整列 171

10.4.9 每隔数行插入一个空行 171

10.4.10 删除单元格 172

10.4.11 删除整行和整列 172

10.4.12 删除工作表的全部单元格 173

10.4.13 删除工作表的全部空行 173

10.4.14 删除工作表的全部空列 173

10.4.15 移动单元格 174

10.4.16 复制单元格的全部信息 174

10.4.17 只复制单元格的值 175

10.4.18 只复制单元格的公式 176

10.4.19 只复制单元格的格式 176

10.4.20 只复制单元格的批注 176

10.4.21 只复制单元格的有效性设置 177

10.4.22 为不同的单元格区域设置不同的保护密码 177

10.5 向单元格和单元格区域输入数据 178

10.5.1 向单元格输入数值 178

10.5.2 向单元格输入字符串 179

10.5.3 向单元格输入数字型字符串 179

10.5.4 向单元格输入公式 179

10.5.5 向单元格输入数组公式 179

10.5.6 向单元格输入日期 179

10.5.7 向单元格输入时间 180

10.5.8 向单元格输入分数 180

10.5.9 向单元格输入邮政编码 180

10.5.10 向单元格输入18位的身份证号码 181

10.5.11 快速输入行标题 181

10.5.12 快速输入列标题 181

10.5.13 快速向单元格区域输入相同的数据 181

10.5.14 快速向单元格区域输入序列数据 181

10.5.15 快速向单元格区域输入连续的日期 182

10.5.16 快速向单元格区域输入具有固定日期间隔的日期 183

10.5.17 向单元格输入多行数据 183

10.5.18 向单元格输入特殊字符 183

10.5.19 快速向某些单元格输入带小数点的数字 183

10.5.20 不激活工作表就向该工作表输入数据 184

10.5.21 同时为多个工作表的相同单元格区域输入相同的数据 184

第11章 使用窗体 185

11.1 用户窗体概述 186

11.1.1 创建用户窗体 186

11.1.2 导出用户窗体 186

11.1.3 导入用户窗体 186

11.1.4 删除用户窗体 187

11.2 设置用户窗体属性 187

11.2.1 更改用户窗体名称 187

11.2.2 更改窗体的标题文字 188

11.2.3 为窗体添加背景图片 188

11.2.4 删除窗体上的背景图片 190

11.2.5 改变窗体的大小 191

11.2.6 设置窗体背景颜色 191

11.2.7 设置窗体外观 192

11.3 加载和卸载用户窗体 194

11.3.1 加载并显示窗体 194

11.3.2 加载但不显示窗体 194

11.3.3 隐藏窗体 194

11.3.4 卸载窗体 194

11.4 利用事件控制用户窗体 195

11.4.1 窗体的常用事件 195

11.4.2 为窗体指定事件的方法 195

11.4.3 在装载窗体时就执行程序 196

11.4.4 在激活窗体时就执行程序 196

11.4.5 在单击时就执行程序 197

11.4.6 禁止使用窗体右上角的X按钮关闭窗体 197

11.5 用户窗体的高级使用技巧 197

11.5.1 以无模式状态显示窗体 197

11.5.2 能够同时显示并能操作多个窗体 198

11.5.3 将窗体显示在窗口的指定位置 198

11.5.4 使窗体自动布满整个屏幕 199

11.5.5 隐藏/显示用户窗体的X按钮 199

11.5.6 将窗体的X按钮设置为有效和无效 200

11.5.7 为窗体添加最大化和最小化按钮 201

11.5.8 在启动工作簿时仅显示窗体,而不显示Excel界面 203

11.5.9 设计有上下滚动字幕的窗体 203

11.5.10 设计有左右滚动字幕的窗体 204

11.5.11 在激活窗体时就播放音乐 205

11.5.12 运行时创建窗体和控件并为其设计事件程序代码 206

第12章 使用控件 210

12.1 控件概述 211

12.1.1 为控件工具箱添加或删除控件 211

12.1.2 在窗体上插入控件 212

12.1.3 对齐窗体上的控件 212

12.1.4 统一设置多个控件的高度和宽度及其他共有属性 212

12.1.5 设置控件的Tab键顺序 213

12.1.6 为控件设置默认属性值 214

12.1.7 设置控件的前景色和背景色 214

12.1.8 设置控件的焦点 214

12.1.9 为控件添加图片和删除图片 214

12.1.10 引用窗体上的某个控件 215

12.1.11 引用窗体上的某一类控件 215

12.1.12 引用窗体上的全部控件 216

12.1.13 获取窗体上所有控件的名称和类型 216

12.1.14 引用窗体上的某些控件 217

12.1.15 获取控件的有关信息 217

12.1.16 显示和隐藏控件 218

12.1.17 将控件变为不可操作和可操作 218

12.1.18 当鼠标停留在控件上面时显示提示信息 219

12.1.19 当鼠标停留在控件上面时改变鼠标指针类型 219

12.1.20 当鼠标停留在控件上面时改变鼠标的图像 220

12.1.21 当鼠标停留在控件上面时改变控件颜色,离开时恢复默认颜色 220

12.2 标签 221

12.2.1 设置标签的标题文字 221

12.2.2 设置标签标题文字的对齐方式 221

12.2.3 设置标签是否能够自动调整大小以显示所有内容 222

12.2.4 设置标签的背景样式 222

12.2.5 设置标签的前景色和背景色 222

12.2.6 设置标签的边框和边框外观 222

12.2.7 利用标签显示运行过程及结果:制作进度条 223

12.2.8 当单击标签时就执行程序 224

12.3 文本框 224

12.3.1 获取文本框的数据 224

12.3.2 将文本框的数字字符串转换为数字 225

12.3.3 将文本框的数字字符串转换为日期 225

12.3.4 向文本框中输入数据 225

12.3.5 设置文本框内字符的对齐方式 225

12.3.6 设置文本框内字符的显示格式 225

12.3.7 限制文本框内输入的字符长度 226

12.3.8 限制文本框内的输入数据 226

12.3.9 不显示输入到文本框的内容 227

12.3.10 将文本框设置为自动换行 227

12.3.11 使文本框内字符在任意字符后换行 228

12.3.12 显示和隐藏文本框的水平滚动条和垂直滚动条 228

12.3.13 设置文本框为必须输入状态 229

12.3.14 限制只能在文本框中输入负号、数字和小数点 229

12.3.15 限制只能在文本框中输入字母 229

12.3.16 当修改文本框中内容时就执行程序 230

12.3.17 当文本框数据变更后就执行程序 230

12.3.18 在文本框中输入数据后就朗读出来 230

12.3.19 在文本框获得焦点时改变背景色 231

12.4 命令按钮 231

12.4.1 更改命令按钮的标题文字 231

12.4.2 将命令按钮设置为默认按钮 231

12.4.3 将命令按钮设置为取消按钮 231

12.4.4 在单击按钮时就执行程序 231

12.4.5 在单击按钮时就朗读出提示信息 232

12.5 复选框 232

12.5.1 设置复选框的标题文字及对齐方式 232

12.5.2 判断复选框是否被选中 233

12.5.3 在运行中选择或取消复选框 233

12.6 选项按钮 233

12.6.1 设置选项按钮的标题文字及对齐方式 234

12.6.2 判断选项按钮是否被选中 234

12.6.3 在运行中选择或取消选项按钮 234

12.6.4 能够同时选择两个以上的选项按钮 234

12.7 框架 235

12.7.1 设置框架的标题文字 235

12.7.2 设置框架外观 235

12.7.3 将框架设计为两条水平平行线或一条水平直线 235

12.7.4 将框架设计为两条垂直平行线或一条垂直直线 236

12.7.5 获取框架内的所有控件名称及其值 236

12.8 复合框 236

12.8.1 利用AddItem方法为复合框列表添加项目 236

12.8.2 利用RowSource属性为复合框列表添加项目 237

12.8.3 利用List属性为复合框列表添加项目 238

12.8.4 利用Column属性为复合框列表添加项目 238

12.8.5 利用Value属性获取复合框的某条项目值 238

12.8.6 利用List属性获取复合框的某条项目值 239

12.8.7 利用Column属性获取复合框的某条项目值 239

12.8.8 利用数组获取复合框的某条项目值 240

12.8.9 利用Clear方法删除复合框的全部项目 240

12.8.10 利用RowSource属性删除复合框的全部项目 240

12.8.11 删除复合框的某条项目 241

12.8.12 设置复合框的显示类型和行为 241

12.8.13 取消复合框项目的选择 242

12.8.14 将复合框设置为必须选择或必须输入状态 242

12.8.15 在复合框的值发生改变时就执行程序 242

12.9 列表框 243

12.9.1 利用AddItem方法为列表框列表添加项目 243

12.9.2 利用RowSource属性为列表框列表添加项目 243

12.9.3 利用List属性为列表框列表添加项目 244

12.9.4 利用Column属性为列表框列表添加项目 244

12.9.5 利用Value属性获取列表框的某条项目值 245

12.9.6 利用List属性获取列表框的某条项目值 245

12.9.7 利用Column属性获取列表框的某条项目值 246

12.9.8 利用Clear方法删除列表框的全部项目 246

12.9.9 利用RowSource属性删除列表框的全部项目 247

12.9.10 删除列表框的某条项目 247

12.9.11 设置列表框的单选和多选状态 247

12.9.12 取消列表框项目的选择 248

12.9.13 在列表框的值发生改变时就执行程序 248

12.9.14 在单击列表框时就执行程序 248

12.10 图像控件 248

12.10.1 使用图像控件显示图片 249

12.10.2 设置图片的显示效果 250

12.10.3 利用工作表数据为图像控件添加图片 250

12.11 其他标准控件 250

12.11.1 实现旋转按钮与文本框的联动 250

12.11.2 使用滚动条 251

12.11.3 使用多页控件 253

12.11.4 使用切换按钮 254

12.11.5 利用标签条(TabStrip控件)动态显示数据 255

12.12 非标准控件 256

12.12.1 利用进度条控件显示运行进程 256

12.12.2 利用ListView控件在窗体上制作报表 257

12.12.3 利用TreeView控件在窗体上显示多维数据 259

12.12.4 利用Spreadsheet控件在窗体上编辑数据 260

12.12.5 利用ChartSpace控件在窗体上绘制动态图表 262

12.12.6 使用日历控件(Calendar) 265

12.12.7 使用获取日期控件(DTPicker) 266

12.13 在工作表中使用ActiveX控件 267

12.12.1 引用工作表中的ActiveX控件 267

12.12.2 自动在工作表中插入ActiveX控件 267

12.12.3 在工作表中自动插入ActiveX控件对象并重命名 268

12.12.4 设置ActiveX控件的标题文字及字体属性 269

12.12.5 设置ActiveX控件的前景色和背景色 270

12.12.6 设置ActiveX控件的大小和位置 270

12.12.7 获取ActiveX控件的值 270

12.14 控件的高级使用技巧 271

12.14.1 每单击一次按钮就执行不同的操作 271

12.14.2 为控件指定多个事件 272

12.14.3 为控件创建类集 273

第13章 操作菜单和工具栏 275

13.1 获取Excel菜单栏信息 276

13.1.1 获取Excel菜单栏信息 276

13.1.2 获取Excel【文件】菜单项信息 277

13.1.3 获取Excel【编辑】菜单项信息 278

13.1.4 获取Excel【视图】菜单项信息 279

13.1.5 获取Excel【插入】菜单项信息 280

13.1.6 获取Excel【格式】菜单项信息 281

13.1.7 获取Excel【工具】菜单项信息 281

13.1.8 获取Excel【数据】菜单项信息 282

13.1.9 获取Excel【窗口】菜单项信息 283

13.2 获取Excel工具栏信息 284

13.2.1 获取Excel所有工具栏信息清单 284

13.2.2 获取Excel标准工具栏信息 285

13.2.3 获取Excel格式工具栏信息 286

13.2.4 获取Excel命令按钮的Icon和FaceID 287

13.3 更改现有的Excel菜单和工具栏 288

13.3.1 禁止使用Excel菜单栏的菜单项 288

13.3.2 删除和恢复Excel菜单栏 289

13.3.3 隐藏和恢复Excel工具栏 289

13.3.4 在现有的菜单中添加或删除自定义菜单命令项 290

13.3.5 在Excel菜单栏中创建和删除自定义子菜单 291

13.3.6 改变Excel命令按钮的Icon 292

13.3.7 在菜单栏或工具栏中添加自定义命令按钮 293

13.3.8 在Excel的工具栏中创建一个自定义组合框命令按钮 294

13.3.9 在Excel的工具栏中创建一个自定义下拉命令按钮 295

13.3.10 禁止使用Excel的菜单命令 296

13.4 创建自定义主菜单栏 297

13.5 创建和删除自定义工具栏 299

13.5.1 创建和删除自定义工具栏 299

13.5.2 创建和删除由内置命令组成的自定义工具栏 301

13.5.3 为每个工作表设计不同的自定义工具栏 302

13.6 创建自定义快捷菜单 304

13.6.1 获取Excel的全部快捷菜单信息 304

13.6.2 为快捷菜单添加或删除菜单项 305

13.6.3 为快捷菜单添加和删除内置命令 306

13.6.4 为某些单元格区域创建一个全新的快捷菜单 307

13.6.5 使Excel的快捷菜单失效 308

13.6.6 在工作表的任意位置快速显示快捷菜单 308

13.6.7 为窗体控件创建自定义快捷菜单 308

第14章 利用VBA处理工作表数据 310

14.1 利用VBA常规方法处理工作表数据 311

14.1.1 查询工作表中符合条件的数值和公式字符串 311

14.1.2 查询数值及公式结果 312

14.1.3 进行模糊查询 315

14.1.4 从多个工作表或工作簿中查询数据 315

14.1.5 删除数据区域内的所有空白行 316

14.1.6 获取存在于两个工作表中相同数据的行数据 316

14.1.7 获取只存在于某个工作表中的行数据 317

14.1.8 从一个工作表中删除另一个工作表中存在的行数据 318

14.1.9 数据排序 318

14.1.10 数据筛选 321

14.2 利用ADO+SQL处理工作表数据 323

14.2.1 利用ADO+SQL进行复杂条件下的查询 324

14.2.2 从工作簿的全部工作表中查询获取数据 325

14.2.3 查询其他工作簿的数据 326

14.2.4 对工作表数据进行复杂排序 327

第15章 操作文件和文件夹 329

15.1 操作文件夹 330

15.1.1 判断文件夹是否存在 330

15.1.2 获取文件夹的属性 330

15.1.3 创建文件夹 331

15.1.4 移动文件夹 331

15.1.5 更改文件夹名称 332

15.1.6 删除文件夹 332

15.2 操作文件 333

15.2.1 判断文件是否存在 333

15.2.2 获取文件的信息 333

15.2.3 复制文件 334

15.2.4 移动文件 334

15.2.5 删除文件 335

15.2.6 更改文件名 335

15.2.7 批量更改文件名 335

15.2.8 批量删除文件 336

15.2.9 利用Application对象的FileSearch属性查找文件 336

15.3 利用文件对象模型操作文件 337

15.3.1 引用文件对象模型 337

15.3.2 FileSystemObject对象 338

15.3.3 检查文件是否存在 338

15.3.4 复制文件 339

15.3.5 删除文件 339

第16章 保护您的劳动成果 341

16.1 为VBA工程设置密码 342

16.2 防止别人通过强制中断方式查看VBA代码 342

16.3 在禁用宏时就自动关闭工作簿 342

16.4 限制工作簿的使用时间,超过时间就自我删除 343

16.5 限制工作簿的使用次数,超过次数就自我删除 344

16.6 设置工作簿的登录窗口 345

第4章 VBA基础语法 32

【例4-1】自定义数据类型。 32

【例4-2】将数组的缺省下界设置为1。 37

【例4-1】自定义数据类型。 32

【例4-2】将数组的缺省下界设置为1。 37

【例4-3】设计一个九九乘法表。 40

【例4-4】获取当前工作簿中的所有工作表名。 40

【例4-5】判断工作表是否存在。 41

【例4-6】Do...Loop循环语句的第一种结构使用举例。 41

【例4-7】Do...Loop循环语句的第二种结构使用举例。 42

【例4-8】Do...Loop循环语句的第三种结构使用举例。 42

【例4-9】Do...Loop循环语句的第四种结构使用举例。 42

【例4-10】退Do循环举例。 43

【例4-11】While...Wend循环语句使用举例。 43

【例4-12】循环数组中的所有元素。 43

【例4-13】循环对象集合中的所有对象。 44

【例4-14】单行格式的If条件语句应用举例。 45

【例4-15】单行格式的If条件语句应用举例。 45

【例4-16】If...Then格式的条件语句应用举例。 45

【例4-17】If...Then...Else格式的条件语句应用举例。 46

【例4-18】If...Then...ElseIf...Then格式的条件语句应用举例。 46

【例4-19】Select...Case语句使用举例(具体常数)。 47

【例4-20】Select...Case语句使用举例(连续的数据范围)。 47

【例4-21】Select...Case语句使用举例(Is关系表达式)。 48

【例4-22】将多个语句写在一行上。 48

【例4-23】With语句的使用举例。 49

第5章 使用工作簿函数和VBA函数 50

【例5-1】使用Application对象的WorksheetFunction属性调用工作簿函数。 51

【例5-2】使用字符串的处理方式向单元格输入工作簿函数。 52

【例5-3】使用字符串的处理方式向单元格输入数组公式。 52

【例5-4】采用定义Range对象变量的方法向单元格输入数组公式。 52

【例5-5】利用Range对象的Formula属性获取单元格中的公式表达式。 53

【例5-6】利用Range对象的FormulaArray属性,判断指定单元格区域是否为数组公式单元格区域的一部分。 53

【例5-7】使用Range集合的SpecialCells方法删除工作表中的所有数据(仅留下所有的公式)。 53

【例5-8】日期和时间函数使用举例。 54

【例5-9】工作簿日期函数与VBA日期函数的比较。 55

【例5-10】字符串函数使用举例。 55

【例5-11】VBA财务函数使用举例。 56

【例5-12】VBA数学函数使用举例。 56

【例5-13】VBA检查函数使用举例。 56

【例5-14】IIf函数使用举例。 57

【例5-15】Choose函数使用举例。 57

【例5-16】Switch函数使用举例。 58

【例5-17】ARRAY函数使用举例。 58

【例5-18】利用ARRAY函数快速输入行标题和列标题。 58

【例5-19】FORMAT格式函数使用举例。 59

【例5-20】输入函数InputBox使用举例——输入日期。 59

【例5-21】输入函数InputBox使用举例——在信息输入框中显示帮助按钮。 59

【例5-22】InputBox方法使用举例——输入数字。 61

【例5-23】InputBox方法使用举例——输入文本。 61

【例5-24】InputBox方法使用举例——输入数字和文本。 61

【例5-25】输出函数MsgBox应用举例。 63

第6章 过程和自定义函数 64

【例6-1】定义模块级变量并获取该变量的值。 69

【例6-2】创建自定义函数。 71

【例6-3】设计参数可选的自定义函数。 71

【例6-4】为自定义函数的可选参数指定默认值——个人所得税自定义函数。 72

【例6-5】设计参数个数不定的自定义函数。 73

【例6-6】设计返回数组的自定义函数。 73

【例6-7】为自定义函数添加提示信息。 73

【例6-8】将自定义函数归类。 74

【例6-9】在过程中调用自定义函数。 75

第7章 操作Application对象 77

【例7-1】获取Excel版本。 78

【例7-2】获取Excel的安装路径。 78

【例7-3】获取当前用户名。 78

【例7-4】获取启动Excel的路径。 78

【例7-5】获取打开Excel文件时的默认路径。 79

【例7-6】获取当前打印机的名称。 79

【例7-7】获取Excel应用程序的标题文字。 79

【例7-8】获取“自动恢复”临时文件的路径。 79

【例7-9】修改Excel应用程序的标题文字。 80

【例7-10】删除Excel应用程序的标题文字。 80

【例7-11】恢复Excel应用程序的默认标题文字。 80

【例7-12】删除/恢复Excel菜单项。 81

【例7-13】使Excel菜单项或其命令不可操作。 81

【例7-14】使Excel菜单项或其命令不可操作。 81

【例7-15】使Excel的工具栏不可操作。 82

【例7-16】使Excel的工具栏上的命令按钮不可操作。 82

【例7-17】隐藏和显示编辑栏。 83

【例7-18】隐藏和显示标准工具栏。 83

【例7-19】隐藏和显示格式工具栏。 84

【例7-20】隐藏和显示状态栏。 84

【例7-21】在状态栏中显示信息。 84

【例7-22】将Excel全屏显示。 85

【例7-23】隐藏Excel本身。 85

【例7-24】改变鼠标指针形状。 85

【例7-25】设置新工作簿中的工作表个数。 86

【例7-26】设置工作簿的默认路径。 86

【例7-27】设置保存自动恢复文件的时间间隔和保存位置。 87

【例7-28】改变手动和自动计算方式。 87

【例7-29】不显示警告信息框。 88

【例7-30】显示Excel的内置对话框。 88

【例7-31】将厘米转换为磅。 88

【例7-32】使程序在指定的时间开始运行。 89

【例7-33】定期运行程序以分析数据。 89

【例7-34】使程序每隔一段时间就自动运行程序。 90

【例7-35】使用OnTime方法禁止改变Excel本身窗口大小。 90

【例7-36】取消程序的运行计划。 91

【例7-37】Application对象的NewWorkbook事件使用举例。 93

【例7-38】Application对象的SheetActivate事件使用举例。 93

【例7-39】Application对象的WorkbookBeforePrint事件使用举例。 93

第8章 操作Workbook对象 95

【例8-1】通过索引编号引用工作簿。 96

【例8-2】通过名称引用工作簿。 96

【例8-3】引用当前的活动工作簿。 97

【例8-4】引用当前宏代码运行的工作簿。 97

【例8-5】引用新建的工作簿。 97

【例8-6】引用有特定工作表的工作簿。 98

【例8-7】获取所有打开的工作簿的名称和路径。 98

【例8-8】利用循环方法判断工作簿是否已经被打开。 99

【例8-9】利用错误处理方法判断工作簿是否已经被打开。 99

【例8-10】利用Path属性判断工作簿是否已经被保存。 100

【例8-11】利用Saved属性判断工作簿的更改是否已经被保存过。 100

【例8-12】获取指定工作簿的上次保存时间。 100

【例8-13】获取宏代码运行的工作簿完整名称。 101

【例8-14】获取宏代码运行的工作簿路径。 101

【例8-15】获取宏代码运行的工作簿的带扩展名的名称。 101

【例8-16】获取宏代码运行的工作簿的基础名称。 101

【例8-17】获取和设置工作簿的文档属性。 101

【例8-18】新建工作簿。 102

【例8-19】重新启动Excel应用程序并新建一个工作簿。 103

【例8-20】利用Open方法并通过指定文件名的方式打开工作簿。 103

【例8-21】以只读的方式打开工作簿。 103

【例8-22】在不更新链接的情况下打开工作簿。 103

【例8-23】利用Open方法打开有打开密码保护的工作簿。 104

【例8-24】通过对话框打开工作簿。 104

【例8-25】保存工作簿但不关闭工作簿。 104

【例8-26】另存工作簿。 105

【例8-27】将工作簿指定密码保存。 105

【例8-28】保存工作簿副本。 105

【例8-29】关闭工作簿但不保存。 106

【例8-30】关闭工作簿并保存所有更改。 106

【例8-31】通过对话框指定名字和保存位置并关闭工作簿。 106

【例8-32】关闭所有打开的工作簿但不保存。 107

【例8-33】关闭所有打开的工作簿并保存更改。 107

【例8-34】关闭所有打开的工作簿及Excel应用程序。 107

【例8-35】判断工作簿是否有保护。 108

【例8-36】为工作簿指定保护密码。 108

【例8-37】撤销工作簿的保护密码。 108

【例8-38】保护工作簿/撤销工作簿保护。 109

【例8-39】改变工作簿窗口的大小。 109

【例8-40】拆分工作簿窗口并冻结窗格。 110

【例8-41】取消工作簿窗口的冻结窗格。 110

【例8-42】隐藏和显示工作簿窗口。 110

【例8-43】设定工作簿窗口的各种显示状态。 111

【例8-44】重排工作簿窗口。 112

【例8-45】设置工作簿的网格线格式。 112

【例8-46】Open事件应用举例。 113

【例8-47】BeforeClose事件应用举例。 113

【例8-48】Activate事件应用举例。 114

【例8-49】Deactivate事件应用举例。 114

【例8-50】BeforeSave事件应用举例。 115

【例8-51】BeforePrint事件应用举例:制作打印日志。 115

【例8-52】BeforePrint事件应用举例:制作打印日志。 115

【例8-53】BeforePrint事件应用举例:计算打印累计次数。 116

【例8-54】BeforePrint事件应用举例:禁止打印当前工作簿。 116

【例8-55】BeforePrint事件应用举例:禁止打印某个工作表。 117

【例8-56】为工作簿内所有的工作表指定SheetBefore RightClick事件。 117

【例8-57】为工作簿内所有的工作表指定SheetBefore RightClick事件。 117

【例8-58】为工作簿内所有的工作表指定SheetBefore RightClick事件。 118

【例8-59】禁止删除当前工作簿内的指定工作表。 118

【例8-60】禁止删除当前工作簿内的所有工作表。 118

【例8-61】禁止移动或复制当前工作簿内的指定工作表。 119

【例8-62】禁止移动或复制当前工作簿内的所有工作表。 119

【例8-63】禁止重命名当前工作簿内的指定工作表。 120

【例8-64】禁止重命名当前工作簿内的所有工作表。 120

【例8-65】禁止在当前工作簿内插入新工作表。 121

【例8-66】为当前工作簿的所有工作表设置相同的页眉。 121

第9章 操作Worksheet对象 122

【例9-1】通过索引引用工作表。 123

【例9-2】通过名称引用工作表。 123

【例9-3】通过Sheets集合引用工作表。 124

【例9-4】引用指定工作簿中的活动工作表。 124

【例9-5】引用当前活动工作簿中的活动工作表。 124

【例9-6】引用当前宏代码运行的工作簿中的某个工作表。 125

【例9-7】引用新建的工作表。 125

【例9-8】引用工作表名称中包含有特定字符串的工作表。 125

【例9-9】通过循环Worksheets集合获取工作簿内所有工作表的名称。 126

【例9-10】通过循环Sheets集合获取工作簿内所有工作表的名称。 126

【例9-11】判断某个表是否为普通工作表。 127

【例9-12】判断指定名称的工作表是否存在。 127

【例9-13】判断指定名称的工作表是否存在。 128

【例9-14】隐藏工作表并通过菜单取消隐藏。 128

【例9-15】隐藏工作表但不能通过菜单取消隐藏。 128

【例9-16】显示被隐藏的工作表。 129

【例9-17】重命名工作表。 129

【例9-18】新建一个工作表并重命名。 130

【例9-19】新建多个工作表并重命名。 130

【例9-20】在本工作簿内复制工作表。 131

【例9-21】将本工作簿内的指定工作表复制到一个新工作簿中。 131

【例9-22】将本工作簿内的某工作表复制到另外一个打开的工作簿中。 131

【例9-23】在本工作簿内移动指定的工作表。 132

【例9-24】将本工作簿内的指定工作表移动到一个新工作簿中。 132

【例9-25】将本工作簿内的某工作表移动到另外一个打开的工作簿中。 132

【例9-26】删除工作表。 133

【例9-27】保护工作表。 133

【例9-28】撤销对工作表的保护。 134

【例9-29】显示和隐藏指定工作表的行号和列标。 134

【例9-30】Activate事件和Deactivate事件应用举例。 137

【例9-31】Change事件应用举例。 138

【例9-32】Change事件应用举例。 138

【例9-33】Change事件应用举例。 138

【例9-34】SelectionChange事件应用举例。 139

【例9-35】BeforeDoubleClick事件应用举例。 139

【例9-36】BeforeRightClick事件应用举例。 139

【例9-37】Calculate事件应用举例。 140

第10章 操作Range对象 141

【例10-1】使用Range属性引用某个单元格。 142

【例10-2】使用Range属性引用连续的单元格区域。 142

【例10-3】使用Range属性引用不连续的单元格区域。 142

【例10-4】采用字符串方式使用Range属性引用不确定的某个单元格。 143

【例10-5】采用字符串方式使用Range属性引用不确定的连续单元格区域。 143

【例10-6】采用字符串方式使用Range属性引用不确定的不连续单元格区域。 144

【例10-7】使用Range属性引用单列。 144

【例10-8】使用Range属性引用连续的多列。 144

【例10-9】使用Range属性引用不连续的多列。 145

【例10-10】使用Range属性引用单行。 145

【例10-11】使用Range属性引用连续的多行。 145

【例10-12】使用Range属性引用不连续的多行。 145

【例10-13】通过定义名称引用单个名称定义的单元格区域。 146

【例10-14】通过定义名称引用多个名称定义的单元格区域。 146

【例10-15】使用Cells属性引用某个单元格。 146

【例10-16】使用Cells属性引用连续的单元格区域。 147

【例10-17】利用Rows属性引用连续的整行。 147

【例10-18】利用Rows属性引用连续的整行:隔行设置单元格颜色。 147

【例10-19】利用Rows属性引用不连续的整行。 147

【例10-20】利用Columns属性引用连续的整列。 148

【例10-21】利用Columns属性引用不连续的整列。 148

【例10-22】选择当前工作表的全部单元格。 148

【例10-23】显示活动单元格的地址。 148

【例10-24】使用UsedRange属性引用已使用的单元格区域。 149

【例10-25】引用被空白行和空白列包围的单元格区域。 149

【例10-26】利用Offset属性动态引用某个单元格。 150

【例10-27】利用Offset属性动态引用连续的单元格区域。 150

【例10-28】利用Resize属性引用变化后的单元格区域。 150

【例10-29】利用Union方法引用多个非连续单元格区域。 151

【例10-30】引用多个单元格区域的交叉区域。 151

【例10-31】引用已用单元格区域中有计算公式的所有单元格。 152

【例10-32】引用工作表中所有计算公式的单元格。 153

【例10-33】在隐藏的行或列中输入数据。 153

【例10-34】引用指定单元格区域内的所有空白单元格。 153

【例10-35】引用指定单元格区域内的所有设置有数据有效性的单元格。 154

【例10-36】引用指定单元格区域内的所有可见单元格。 154

【例10-37】引用指定单元格区域内的所有出现错误的单元格。 155

【例10-38】引用指定单元格区域内有批注的单元格。 155

【例10-39】引用指定单元格区域内所有设置有条件格式的单元格。 156

【例10-40】获取已用单元格区域的地址。 156

【例10-41】使用Address获取单元格地址的列标字母。 157

【例10-42】使用Chr函数获取指定数字对应的列标字母。 157

【例10-43】获取单元格区域的起始行号和终止行号。 157

【例10-44】获取单元格区域的起始列号和终止列号。 158

【例10-45】利用HasFormula属性判断给定单元格内是否输入了公式。 159

【例10-46】利用字符串处理的方法判断单元格内是否输入了公式。 159

【例10-47】判断指定单元格内是否输入了数组公式。 159

【例10-48】获取单元格内的公式字符串。 160

【例10-49】获取单元格的字体对象信息。 160

【例10-50】获取单元格的内部对象信息。 161

【例10-51】设置单元格的字体属性。 161

【例10-52】设置单元格区域外边框。 162

【例10-53】设置单元格区域的全部边框。 163

【例10-54】删除单元格区域的全部边框。 163

【例10-55】设置指定单元格的颜色和背景。 164

【例10-56】设置单元格的有效性规则。 165

【例10-57】为单元格设置或删除超链接。 167

【例10-58】为单元格添加和删除批注。 167

【例10-59】为单元格区域定义和删除名称。 168

【例10-60】自动调整指定单元格区域的列宽和行高。 168

【例10-61】设置指定单元格的行高和列宽。 168

【例10-62】插入单元格。 171

【例10-63】插入整行和整列。 171

【例10-64】每隔3行插入1个空行。 171

【例10-65】删除单元格。 172

【例10-66】删除整行和整列。 172

【例10-67】删除数据区域的所有空行。 173

【例10-68】删除数据区域的全部空列。 173

【例10-69】移动单元格。 174

【例10-70】复制单元格的全部信息。 174

【例10-71】只复制单元格的值。 175

【例10-72】只复制单元格公式。 176

【例10-73】只复制单元格的格式。 176

【例10-74】只复制单元格批注。 176

【例10-75】只复制单元格的有效性设置。 177

【例10-76】为不同的单元格区域设置不同的保护密码。 177

【例10-77】删除设置的分区保护。 178

【例10-78】向单元格输入数值。 178

【例10-79】向单元格输入字符串。 179

【例10-80】向单元格输入数组公式。 179

【例10-81】向单元格输入日期。 179

【例10-82】向单元格输入时间。 180

【例10-83】向单元格输入分数。 180

【例10-84】向单元格输入邮政编码的两种方法。 181

【例10-85】向指定的单元格区域输入连续值。 182

【例10-86】快速向单元格区域输入连续的日期。 182

【例10-87】快速向单元格区域输入具有固定日期间隔的日期。 183

【例10-88】快速向某些单元格输入带小数点的数字。 183

【例10-89】不激活工作表就向该工作表输入数据。 184

【例10-90】同时为多个工作表的相同单元格区域输入相同的数据。 184

第11章 使用窗体 185

【例11-1】更改窗体的标题文字。 188

【例11-2】在运行程序时为窗体添加图片。 189

【例11-3】改变窗体的大小。 191

【例11-4】设置窗体外观。 193

【例11-5】在装载窗体时就执行程序。 196

【例11-6】在激活窗体时就执行程序。 196

【例11-7】在单击时就执行程序。 197

【例11-8】禁止使用窗体右上角的X按钮关闭窗体。 197

【例11-9】将窗体显示在窗口的指定位置。 198

【例11-10】利用Left属性和Top属性将窗体显示在窗口的指定位置。 199

【例11-11】使窗体自动布满整个屏幕。 199

【例11-12】隐藏和显示用户窗体的X按钮。 200

【例11-13】将用户窗体的X按钮设置为有效和无效。 201

【例11-14】为用户窗体添加最大化和最小化按钮。 202

【例11-15】在启动工作簿时仅显示窗体,而不显示Excel界面。 203

【例11-16】设计有上下滚动字幕的窗体。 203

【例11-17】设计有左右滚动字幕的窗体。 204

【例11-18】在激活窗体时就播放音乐。 205

【例11-19】在窗体上插入Media Player控件来播放音乐。 205

【例11-20】运行时创建窗体和控件并为其设计事件程序代码。 207

第12章 使用控件 210

【例12-1】在程序运行时设置控件的共有属性。 213

【例12-2】引用窗体上的某一类控件。 216

【例12-3】引用窗体上的全部控件。 216

【例12-4】获取窗体上所有控件的名称和类型。 216

【例12-5】使用数组函数引用窗体上的控件。 217

【例12-6】获取控件的有关信息。 217

【例12-7】显示和隐藏控件。 218

【例12-8】利用Enabled属性设置控件的可操作性。 218

【例12-9】利用Locked属性设置控件的可操作性。 219

【例12-10】当鼠标停留在控件上面时显示提示信息。 219

【例12-11】当鼠标停留在控件上面时改变鼠标指针类型。 219

【例12-12】当鼠标停留在控件上面时改变鼠标的图像。 220

【例12-13】当鼠标停留在控件上面时改变控件颜色,离开时恢复默认颜色。 221

【例12-14】利用标签制作进度条。 223

【例12-15】当单击标签时就执行程序。 224

【例12-16】设置文本框内字符的显示格式。 226

【例12-17】限制文本框内输入的字符长度。 226

【例12-18】限制文本框内的输入数据。 226

【例12-19】不显示输入到文本框的内容。 227

【例12-20】将文本框设置为自动换行。 227

【例12-21】使文本框内字符在任意字符后换行。 228

【例12-22】设置文本框为必须输入状态。 229

【例12-23】将文本框限制为只能输入负号、数字和小数点。 229

【例12-24】限制只能在文本框中输入字母。 230

【例12-25】当修改文本框中内容时就执行程序。 230

【例12-26】当文本框数据变更后就执行程序。 230

【例12-27】在文本框中输入数据后就朗读出来。 230

【例12-28】在文本框获得焦点时改变背景色。 231

【例12-29】在单击按钮时就执行程序。 232

【例12-30】在单击按钮时就朗读出提示信息。 232

【例12-31】设置复选框的标题文字及对齐方式。 233

【例12-32】判断复选框是否被选中。 233

【例12-33】设置选项按钮的标题文字及对齐方式。 234

【例12-34】能够同时选择两个以上的选项按钮。 234

【例12-35】将框架设计为两条水平平行线或一条水平直线。 236

【例12-36】将框架设计为两条垂直平行线或一条垂直直线。 236

【例12-37】获取框架Framel内的所有控件名称及其值。 236

【例12-38】利用AddItem方法为复合框列表添加项目。 237

【例12-39】利用RowSource属性为复合框ComboBoxl添加项目。 237

【例12-40】利用List属性为复合框设置项目。 238

【例12-41】使用工作表中的数据,并利用List属性为复合框设置项目。 238

【例12-42】利用Column属性为复合框列表添加项目。 238

【例12-43】利用Value属性获取复合框的某条项目值。 239

【例12-44】利用List属性获取复合框的某条项目值。 239

【例12-45】利用Column属性获取复合框的某条项目值。 239

【例12-46】利用数组获取复合框的某条项目值。 240

【例12-47】利用RemoveItem方法将复合框内的某条项目删除。 241

【例12-48】设置复合框的显示类型和行为。 241

【例12-49】将复合框设置为必须选择或必须输入状态。 242

【例12-50】在复合框的值发生改变时就执行程序。 242

【例12-51】利用AddItem方法为列表框列表添加项目。 243

【例12-52】利用RowSource属性为列表框ListBoxl添加项目。 243

【例12-53】利用List属性为列表框设置项目。 244

【例12-54】利用Column属性为列表框列表添加项目。 245

【例12-55】利用Value属性获取列表框的某条项目值。 245

【例12-56】利用List属性获取列表框的某条项目值。 245

【例12-57】利用Column属性获取列表框的某条项目值。 246

【例12-58】利用Clear方法删除列表框的全部项目。 246

【例12-59】利用RemoveItem方法将列表框内的某条项目删除。 247

【例12-60】设置列表框为多选状态。 247

【例12-61】在列表框的值发生改变时就执行程序。 248

【例12-62】在单击列表框时就执行程序。 248

【例12-63】使用图像控件显示图片。 249

【例12-64】利用工作表数据为图像控件添加图片。 250

【例12-65】实现旋转按钮与文本框的联动。 251

【例12-66】实现滚动条与工作表滚动条的同步联动。 252

【例12-67】利用滚动条进行颜色调整和配色。 252

【例12-68】多页控件使用举例。 253

【例12-69】切换按钮使用举例。 254

【例12-70】利用标签条(TabStrip控件)动态显示数据。 255

【例12-71】利用ProgressBar控件设置一个显示计算过程的进度条。 256

【例12-72】利用ListView控件在窗体上制作报表。 257

【例12-73】利用TreeView控件在窗体上显示多维数据。 259

【例12-74】利用Spreadsheet控件在窗体上编辑数据。 261

【例12-75】利用ChartSpace控件在窗体上绘制动态图表。 262

【例12-76】利用ChartSpace控件在窗