1、完全手册Excel VBA典型实例大全:通过368个例子掌握目录第1章 宏的应用技巧宏是一个VBA程序,通过宏可以完成枯燥的、频繁的重复性工作。本章的实例分别介绍在Excel 2003、Excel 2007中录制宏、使用Visual Basic代码创建宏的方法,最后还以实例演示运行宏和编辑宏的方法。1.1 创建宏 1例001 在Excel 2003中录制宏 1例002 打开Excel 2007的录制宏功能 3例003 在Excel 2007中录制宏 4例004 使用Visual Basic创建宏 51.2 管理宏 6例005 运行宏 7例006 编辑宏 8第2章 VBE使用技巧VBE(Visu
2、al Basic Editor)是编写VBA代码的工具,在上一章中曾使用VBE编辑宏代码。本章的实例介绍了设置VBE操作环境、在VBE中管理工程代码、使用VBE的辅助工具提高代码输入效率等方法。2.1 设置VBE操作环境 10例007 停靠VBE子窗口 10例008 定制VBE环境 122.2 工程管理 13例009 增加模块 13例010 删除模块 15例011 导出模块 16例012 导入模块 172.3 管理代码 18例013 属性/方法列表 18例014 常数列表 19例015 参数信息 20例016 自动完成关键字 21第3章 程序控制流程技巧结构化程序设计中使用的基本控制结构有3种
3、:顺序结构、选择结构和循环结构。本章以实例演示了VBA中这三种控制结构的控制语句,最后还介绍了在VBA中使用数组的方法。3.1 常用输入/输出语句 23例017 九九乘法表(Print方法的应用) 23例018 输入个人信息(Inputbox函数的应用) 24例019 退出确认(Msgbox函数的应用) 253.2 分支结构 27例020 突出显示不及格学生 27例021 从身份证号码中提取性别 29例022 评定成绩等级 30例023 计算个人所得税 323.3 循环结构 34例024 密码验证 34例025 求最小公倍数和最大公约数 36例026 输出ASCII码表 37例027 计算选中
4、区域数值之和 39例028 换零钱法(多重循环) 403.4 使用数组 42例029 数据排序 42例030 彩票幸运号码 44例031 用数组填充单元格区域 46第4章 Range对象操作技巧用户在使用Excel时,大部分时间都是在操作单元格中的数据,同样地,在Excel中使用VBA编程时,也需要频繁地引用单元格区域。本章实例介绍用VBA引用单元格、获取单元格信息、操作单元格数据、设置单元格格式等内容。4.1 获取单元格的引用 48例032 使用A1样式引用单元格 48例033 使用索引号引用单元格 49例034 引用多个单元格区域 50例035 合并单元格区域 51例036 引用合并区域的
5、子区域 52例037 动态选中单元格区域 53例038 引用相对其他单元格的单元格 54例039 扩展单元格区域 55例040 引用单元格交叉区域 56例041 引用当前区域 57例042 获取已使用区域 58例043 引用区域内的单元格 59例044 设置标题行格式 61例045 选取条件格式单元格 62例046 选择数据列末单元格 63例047 获取某列连续数据区域 64例048 获取多个不同长度的非连续列 65例049 当前单元格的前后单元格 65例050 获取三维区域 664.2 获取单元格信息 67例051 获取标题行和数据行 67例052 获取当前区域信息 68例053 单元格区域
6、是否有公式 69例054 追踪公式单元格 70例055 获取单元格地址 714.3 操作单元格 72例056 合并相同值单元格 72例057 删除指定字符后的内容 73例058 给单元格设置错误值 75例059 活动单元格错误类型 76例060 自动设置打印区域 77例061 按设置长度换行 77例062 选择不含公式的单元格 79例063 生成不重复随机数 80例064 拆分单元格 82例065 添加超链接 83例066 删除超链接 84例067 限制单元格移动范围 85例068 插入批注 86例069 隐藏/显示批注 87例070 删除批注 87例071 复制单元格区域 88例072 给单
7、元格设置公式 90例073 复制公式 90例074 查找并填充空白单元格 91例075 清除单元格 92例076 删除单元格区域 934.4 设置单元格格式 94例077 按颜色统计单元格数量 94例078 获取单元格底纹和图案 95例079 设置页眉为单元格值 96例080 设置日期格式 97例081 生成大写金额 98例082 格式化当前区域的数据 100例083 设置自动套用格式 101例084 突出显示当前位置 101例085 设置边框线 103例086 设置文本对齐格式 104例087 单元格文本缩排 105例088 设置文本方向 107例089 设置自动换行格式 108例090 设
8、置缩小字体填充 108例091 设置条件格式 109例092 设置单元格图案 111例093 合并单元格 112第5章 Worksheet对象操作技巧Worksheet对象表示Excel工作簿中的工作表,Worksheet对象是Worksheets集合的成员。在VBA中,通过操作Worksheet对象和Worksheets集合对象,即可控制Excel的工作表。本章实例介绍了用VBA代码操作工作表、操作工作表行和列、通过工作表事件控制工作表等内容。5.1 控制工作表集合 114例094 增加工作表 114例095 窗体方式新增工作表 115例096 窗体方式删除工作表 118例097 批量新建工
9、作表 119例098 获取工作表数 120例099 循环激活工作表 121例100 选择工作表 121例101 选取前一个工作表/后一个工作表 122例102 选中工作表的名称 123例103 保护工作表 124例104 撤销工作表的保护 126例105 判断工作表是否存在 127例106 工作表排序 129例107 复制工作表 130例108 移动工作表 131例109 删除工作表 132例110 删除空工作表 133例111 密码控制删除工作表 134例112 隐藏/显示工作表 135例113 工作表移至最前/最后 136例114 工作表打印页数 137例115 重命名工作表 138例11
10、6 设置工作表标签颜色 140例117 导出工作表 1415.2 操作工作表的行和列 144例118 删除空行 144例119 插入行 145例120 插入多行 146例121 插入列 147例122 隐藏/显示行 148例123 隐藏/显示列 149例124 设置行高 149例125 设置列宽 1515.3 操作工作表 152例126 合并工作表数据 152例127 工作表是否被保护 153例128 制作工作表目录 154例129 删除图片 155例130 修改工作表的代码名 1565.4 控制工作表事件 158例131 为输入数据的单元格添加批注 158例132 自动填充相同值 159例1
11、33 记录同一单元格多次输入值 160例134 禁止选中某个区域 161例135 禁止输入相同数据 162例136 设置滚动区域 163例137 自动添加边框线 164例138 限制在数据区域下一行输入数据 165例139 增加快捷菜单 166例140 限制选择其他工作表 168例141 自动隐藏工作表 169例142 将原数据作批注 170例143 输入编码 171第6章 Workbook对象操作技巧Workbook对象表示Excel工作簿,Workbooks集合对象表示Excel中所有打开的工作簿。本章实例介绍VBA控制工作簿的方法,包括对工作簿集合和工作簿的操作、通过工作簿事件控制工作簿
12、的操作。6.1 操作工作簿集合 173例144 批量新建工作簿 173例145 设置背景音乐 174例146 打开工作簿 176例147 保存工作簿 177例148 更名保存工作簿 178例149 将工作簿保存为Web页 180例150 打开文本文件 181例151 设置工作簿密码 182例152 保护工作簿 184例153 查看文档属性 185例154 处理命名单元格区域 187例155 判断工作簿是否存在 190例156 判断工作簿是否打开 191例157 备份工作簿 192例158 获取关闭工作簿中的值(方法1) 194例159 获取关闭工作簿中的值(方法2) 196例160 多工作簿数
13、据合并 1976.2 控制工作簿事件 199例161 自动打开关联工作簿 199例162 禁止拖动单元格 200例163 设置新增工作表为固定名称 201例164 退出前强制保存工作簿 202例165 限制打印 203例166 限制保存工作簿 204例167 限制工作簿使用次数 205例168 限制工作簿使用时间 207例169 设置应用程序标题 207例170 根据密码打开工作簿 209例171 打开工作簿禁用宏 210例172 用VBA删除宏代码 212第7章 Application对象操作技巧Application对象代表整个Excel应用程序,使用Application对象可控制应用程
14、序范围的设置和选项。本章实例介绍使用VBA,通过Application对象自定义Excel外观、设置Excel操作选项、控制Excel应用程序,以及通过Application对象的OnTime方法和OnKey方法响应用户操作的内容。7.1 自定义Excel外观 214例173 显示/关闭编辑栏 214例174 设置状态栏 215例175 控制鼠标指针形状 217例176 全屏幕显示 218例177 最大化Excel窗口 219例178 查询计算机信息 2197.2 设置Excel操作选项 220例179 关闭屏幕刷新 220例180 禁止弹出警告信息 222例181 复制/剪切模式 223例1
15、82 获取系统路径 2247.3 控制应用程序 225例183 激活Microsoft应用程序 225例184 控制最近使用文档 226例185 文件选择器 228例186 快速跳转 230例187 激活Excel 2007的功能区选项卡 2327.4 Application对象事件处理 234例188 工作表上显示时钟 234例189 整点报时 235例190 自定义功能键 236第8章 Window对象操作技巧Window对象代表一个窗口,许多工作表特征(如滚动条和标尺)实际上是窗口的属性。本章实例介绍用VBA控制窗口的方法,包括通过Window对象的属性和方法创建、拆分窗口、设置窗口大小
16、、显示比例、控制窗口显示状态等。8.1 控制窗口 238例191 创建窗口 238例192 调整窗口大小 239例193 获取窗口状态 242例194 拆分窗格 243例195 并排比较窗口 244例196 排列窗口 245例197 窗口显示比例 2468.2 控制工作表的显示选项 248例198 工作簿显示选项 248例199 工作表显示选项 249例200 工作表网格线 250例201 获取指定窗口选中的信息 252第9章 Chart对象操作技巧在Excel中可以快速简便地创建图表。在程序中,通过VBA代码也可方便地创建图表。本章实例介绍用VBA创建图表(包括嵌入式图表)、控制图表中的对象
17、、通过图表事件响应用户操作等内容。9.1 创建图表 254例202 创建图表工作表 254例203 创建嵌入图表 255例204 转换图表类型 257例205 删除图表 2589.2 控制图表对象 260例206 获取嵌入图表的名称 260例207 获取图表标题信息 260例208 获取图例信息 262例209 获取图表坐标轴信息 263例210 获取图表的系列信息 264例211 判断工作表的类型 265例212 重排嵌入图表 266例213 调整图表的数据源 268例214 为图表添加阴影 269例215 显示数据标签 271例216 将图表保存为图片 273例217 设置图表颜色 274
18、例218 按值显示颜色 276例219 修改嵌入图表外形尺寸 277例220 修改图表标题 279例221 修改坐标轴 280例222 图表插入到Word文档 2829.3 图表事件 283例223 激活图表工作表 283例224 显示图表各子对象名称 284例225 捕获嵌入图表事件 285第10章 用户界面设计技巧在Excel中,用户大部分时间是在工作表中进行操作。在Excel中,也可以设计用户窗体,用户直接在窗体上进行操作,而将工作表作为保存数据的地方。本章实例介绍在VBA中调用Excel内置对话框、在VBE中创建自定义窗体等内容。10.1 使用内置对话框 288例226 显示打开对话框
19、(使用GetOpenFilename方法) 288例227 显示保存文件对话框(使用GetSaveAsFilename方法) 290例228 显示内置对话框 291例229 用VBA调用Excel 2007功能区功能 29310.2 创建自定义窗体 294例230 制作Splash窗口 294例231 控制窗体显示 295例232 列表框间移动数据 297例233 通过窗体向工作表添加数据 302例234 制作多页窗体报名登记 305例235 通过窗体设置单元格格式 307例236 用窗体控制工作表显示比例 308例237 调色板窗体 311例238 在窗体中显示图表 312例239 制作向导
20、窗体 314例240 拖动窗体上的控件 317例241 制作交通信号灯 318例242 制作进度条 320第11章 命令栏和功能区操作技巧在Excel 2007中,以新的功能区取代了以前版本的命令栏(包括菜单栏和工具栏)。本章实例分别介绍了用VBA控制Excel 2003以前版本的命令栏、用XML自定义Excel 2007功能区等内容。11.1 控制命令栏 322例243 显示内置菜单和工具栏的ID 322例244 创建自定义菜单 323例245 删除自定义菜单 325例246 创建快捷菜单 326例247 禁止工作表标签快捷菜单 328例248 屏蔽工作表标签部分快捷菜单 32911.2 E
21、xcel 2007的功能区 330例249 创建功能区选项卡 330例250 禁用Office按钮的菜单 332例251 在“Office按钮”中新建菜单 333例252 重定义“Office按钮”菜单项功能 335例253 为内置选项卡增加功能 336第12章 Excel处理工作表数据技巧通过Excel相关对象可对工作表中的数据进行操作,如处理单元格区域的公式、对数据进行查询、排序、筛选等操作。本章实例介绍了用VBA处理公式,对数据进行查询、排序、筛选等内容。12.1 处理公式 339例254 判断单元格是否包含公式 339例255 自动填充公式 340例256 锁定和隐藏公式 341例25
22、7 将单元格公式转换为数值 342例258 删除所有公式 343例259 用VBA表示数组公式 34512.2 数据查询 346例260 查找指定的值 346例261 带格式查找 349例262 查找上一个/下一个数据 349例263 代码转换 351例264 模糊查询 353例265 网上查询快件信息 354例266 查询基金信息 357例267 查询手机所在地 358例268 使用字典查询 36012.3 数据排序 361例269 用VBA代码排序 362例270 乱序排序 363例271 自定义序列排序 364例272 多关键字排序 366例273 输入数据自动排序 367例274 数组
23、排序 369例275 使用Small和Large函数排序 370例276 使用RANK函数排序 372例277 姓名按笔画排序 37412.4 数据筛选 376例278 用VBA进行简单筛选 377例279 用VBA进行高级筛选 378例280 筛选非重复值 380例281 取消筛选 381第13章 Excel处理数据库技巧通过VBA代码,可在Excel中访问数据库。本章实例介绍通过ADO访问Excel工作簿中的数据、在Excel中处理Access数据库(包括获取、添加、修改、删除记录,创建Access数据)等内容。13.1 用ADO访问Excel工作表 383例282 使用ADO连接数据库
24、383例283 从工作表中查询数据 384例284 使用ADO导出数据 386例285 汇总数据 387例286 不打开工作簿获取工作表名称 38813.2 处理Access数据库 390例287 从Access中获取数据 390例288 添加数据到Access 391例289 创建Access数据库 393例290 是否存在指定表 395例291 列出数据库的表名 396例292 列出数据表的字段信息 398例293 修改记录 399例294 删除记录 401第14章 创建加载宏技巧在Excel中,通过加载宏可以扩展功能,加载宏是为Excel提供自定义命令或自定义功能的补充程序。本章实例介绍
25、了在Excel中通过VBA代码创建Excel加载宏和COM加载宏的方法。14.1 创建加载宏的方法 404例295 创建Excel加载宏 404例296 创建COM加载宏 408例297 系统加载宏列表 41314.2 常用加载宏示例 414例298 时间提示 414例299 大写金额转换 416例300 计算个人所得税 418例301 加盖公章 419第15章 文件和文件夹操作技巧通过VBA代码可在Excel中操作文件。有两种方式访问操作文件和文件夹:一是使用过程形式的VB访问和操作方法,另一种是将文件系统作为对象的文件对象模型方式。本章实例介绍了用VB语句操作文件和文件夹、用FSO操作文件
26、和文件夹的内容。15.1 用VB语句操作文件和文件夹 422例302 显示指定文件夹的文件 422例303 判断文件(文件夹)是否存在 424例304 新建文件夹 425例305 复制文件 426例306 重命名文件或文件夹 427例307 删除文件 429例308 查看文件属性 43015.2 用FSO操作文件和文件夹 432例309 判断文件是否存在(FSO) 432例310 分离文件名和扩展名 434例311 新建和删除文件夹(FSO) 435例312 复制文件(FSO) 437例313 复制文件夹(FSO) 439例314 列出文件夹名称 440例315 显示文件属性 441例316
27、删除所有空文件夹 442例317 显示驱动器信息 444第16章 文本文件操作技巧 上一章介绍了对文件进行复制、删除之类的操作,更多的时候用户还需要从文本文件中读取数据,或向文本文件中写入数据。本章实例介绍用VBA操作文本文件的内容,包括用VB语句操作文本文件和用FSO操作文本文件。16.1 用VB语句操作文本文件 446例318 创建文本文件 446例319 读取文本文件数据 448例320 工作表保存为文本文件 450例321 导出批注到文本文件 451例322 从文本文件导入批注 45316.2 用FSO操作文本文件 455例323 创建文本文件(FSO) 455例324 添加数据到文本
28、文件(FSO) 456例325 读取文本文件数据(FSO) 458第17章 用Excel控制其他程序技巧 在Excel中,通过VBA代码可调用其他应用程序的功能。包括创建和打开Word文档、创建和打开幻灯片、发送和导入Outlook邮件等。另外,使用VBA提供的Shell函数还可打开Windows中的其他程序、打开控制面板对应的选项等。17.1 控制Office应用程序 460例326 打开Word文档 460例327 从Word文档中获取数据 462例328 生成成绩通知书 464例329 在Excel中打开PPT 469例330 在Excel中创建PPT 470例331 使用SendMai
29、l发送邮件 473例332 用Outlook发送邮件 474例333 导入Outlook中的邮件 476例334 保存Outlook中的附件 47817.2 调用其他程序 479例335 运行系统自带程序 479例336 在Excel中打开控制面板 481第18章 VBE工程实用操作技巧 在第2章中介绍了VBE的使用方法。其实,VBE也包含一个对象模型,通过该对象模型可控制VBA工程的主要元素。本章实例介绍通过VBE对象模型,用VBA代码添加或删除模块、创建用户窗体、生成VBA代码等内容。18.1 显示工程相关信息 483例337 显示工程信息 483例338 列出工程所有组件 485例339
30、 显示工作簿中VBA的过程名 486例340 导出VBA过程代码 488例341 列出工程引用的外部库 48918.2 动态创建组件 490例342 重命名组件 490例343 导出/导入模块代码 492例344 删除指定子过程代码 494例345 查找代码 496例346 增加模块 498例347 增加类模块 500例348 控制VBE的子窗口 501例349 工作表中动态增加按钮 502例350 创建动态用户窗体 504第19章 VBA程序调试优化技巧 Excel应用程序的顺利完成,调试的过程是非常重要的。本章实例介绍Excel VBA调试程序的基本方法和VBA程序的优化技巧。19.1 V
31、BA程序调试技巧 507例351 设置断点 507例352 使用本地窗口 508例353 使用立即窗口 510例354 单步执行 510例355 运行选定部分代码 512例356 调用堆栈 513例357 使用监视窗口 514例358 使用条件编译 515例359 错误处理语句 51719.2 VBA程序优化技巧 518例360 使用VBA已有功能 518例361 避免使用变体 520例362 使用对象变量 521例363 使用数组处理单元格 522例364 检查字符串是否为空 522例365 优化循环体 523例366 使用For Each循环 525例367 关闭屏幕刷新 526例368
32、使用内置函数 527VBA应用程序由一系列的VBA代码组成,这些代码将按照一定的顺序执行。有时程序根据一定的条件只能执行某一部分代码,有时需要重复执行某一段代码。通过程序结构控制代码来完成这些功能,本章介绍这些程序控制流程方面的技巧。3.1 常用输入/输出语句结构化程序设计中使用的基本控制结构有3种:顺序结构、选择结构和循环结构。顺序结构就是按照语句的书写顺序从上到下、逐条语句地执行。执行时,编写在前面的代码先执行,编写在后面的代码后执行。这是最普遍的结构形式,也是后面两种结构的基础。顺序结构不需要使用结构控制语句,本节介绍常用的输入输出语句的技巧。例017 九九乘法表(Print方法的应用)
33、1案例说明在早期的Basic版本中,程序运行结果主要依靠Print语句输出到终端。在VB中,Print作为窗体的一个方法,用来在窗体中显示信息。但是在VBA中,用户窗体已经不支持Print方法了。在VBA中,Print方法只能向“立即窗口”中输出程序的运行中间结果,供开发人员调试程序时使用。本例使用Print方法在立即窗口中输入九九乘法表。2关键技术在VBA中,Print方法只能应用于Debug对象,其语法格式如下:Debug.Print outputlist参数outputlist是要打印的表达式或表达式的列表。如果省略,则打印一个空白行。 Print首先计算表达式的值,然后输出计算的结果。
34、在outputlist参数中还可以使用分隔符,以格式化输出的数据。格式化分隔符有以下几种: Spc(n):插入n个空格到输出数据之间; Tab(n):移动光标到适当位置,n为移动的列数; 分号:表示前后两个数据项连在一起输出; 逗号:以14个字符为一个输出区,每个数据输出到对应的输出区。3编写代码(1)在VBE中,单击菜单“插入/模块”命令插入一个模块。(2)在模块中输入以下代码:Sub multi() For i = 1 To 9 For j = 1 To i Debug.Print i; x; j; =; i * j; ; Next Debug.Print 换行 NextEnd Sub(3
35、)按功能键“F5”运行子过程,在“立即窗口”输出九九乘法表,如图3-1所示。图3-1 立即窗口例018 输入个人信息(Inputbox函数的应用)1案例说明本例演示Inputbox函数的使用方法。执行程序,将弹出“输入个人信息”对话框,要求用户输入“姓名、年龄、地址”信息,然后在“立即窗口”中将这些信息打印输出。2关键技术为了实现数据输入,VBA提供了InputBox函数。该函数将打开一个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其语法格式如下:InputBox(prompt, title , default , xpos , ypos , helpfile, conte
36、xt) 各参数的含义如下: Prompt:为对话框消息出现的字符串表达式。其最大长度为1024个字符。如果需要在对话框中显示多行数据,则可在各行之间用回车符换行符来分隔,一般使用VBA的常数vbCrLf代表回车换行符。 Title:为对话框标题栏中的字符串。如果省略该参数,则把应用程序名放入标题栏中。 Default:为显示在文本框中的字符串。如果省略该参数,则文本框为空。 Xpos:应和Ypos成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略该参数,则对话框会在水平方向居中。 Ypos:应和Xpos成对出现,指定对话框的上边与屏幕上边的距离。如果省略该参数,则对话框被放置在屏幕垂直方
37、向距下边大约三分之一的位置。 Helpfile:设置对话框的帮助文件,可省略。 Context:设置对话框的帮助主题编号,可省略。3编写代码(1)在VBE中,单击菜单“插入/模块”命令插入一个模块。(2)在模块中输入以下代码:Sub inputinfo() Title = 输入个人信息 name1 = 请输入姓名: age1 = 请输入年龄: address1 = 请输入地址: strName = InputBox(name1, Title) age = InputBox(age1, Title) Address = InputBox(addres1, Title) Debug.Print 姓
38、名:; strName Debug.Print 年龄:; age Debug.Print 地址:; AddressEnd Sub(3)按功能键“F5”运行子过程,将弹出“输入个人信息”窗口,如图3-2所示。在对话框中输入内容后按“回车”,或单击“确定”按钮。(4)接着输入“年龄”和“地址”信息,在“立即窗口”中将输出这些内容,如图3-3所示。 图3-2 输入个人信息 图3-3 输出结果例019 退出确认(Msgbox函数的应用)1案例说明在应用程序中,有时用户会由于误操作关闭Excel,为了防止这种情况,可在退出Excel之前弹出对话框,让用户确认是否真的要关闭Excel。本例使用Msgbox
39、函数弹出对话框,让用户选择是否退出系统。2关键技术使用MsgBox函数可打开一个对话框,在对话框中显示一个提示信息,并让用户单击对话框中的按钮,使程序继续执行。MsgBox函数语法格式如下:Value=MsgBox(prompt,buttons,title ,helpfile,context)通过函数返回值可获得用户单击的按钮,并可根据按钮的不同而选择不同的程序段来执行。该函数共有5个参数,除第1个参数外,其余参数都可省略。各参数的意义与Inputbox函数参数的意义基本相同,不同的地方是多了一个buttons参数,用来指定显示按钮的数目及形式、使用提示图标样式、默认按钮以及消息框的强制响应等
40、。其常数值如表3-1所示。表3-1 按钮常数值常 量值说 明vbOkOnly0只显示“确定”(Ok)按钮vbOkCancel1显示“确定”(Ok)及“取消”(Cancel)按钮vbAbortRetryIgnore2显示“异常终止”(Abort)、“重试”(Retry)及“忽略”(Ignore)按钮vbYesNoCancel3显示“是”(Yes)、“否”(No)及“取消”(Cancel)按钮续表 常 量值说 明vbYesNo4显示“是”(Yes)及“否”(No)按钮vbRetryCancel5显示“重试”(Retry)及“取消”(Cancel)按钮vbCritical16显示Critical Message图标vbQuestion32显示Warning Query图标vbExclamation48显示Warning Message图标vbInformation64显示Information Message图标vbDefaultButton10以第一个按钮为默认按钮vbDefaultButton2256以第二个按钮为默认按钮vbDefaultButton3512以第三