Excel VBA基础教程:从入门到实践

需积分: 44 7 下载量 152 浏览量 更新于2024-11-11 收藏 3.37MB PDF 举报
"VBA基础教程pdf版" 本教程是一份针对初学者的VBA(VISUAL BASIC FOR APPLICATIONS)入门指南,旨在帮助无Excel VBA背景的读者掌握VBA编程基础知识。教程涵盖了一系列核心概念,从语言基础到高级应用,逐步深入。 在VBA语言基础部分,首先讲解了标识符,它是编程中用于识别变量、函数等的名称。接着介绍了运算符,如算术运算符、比较运算符和逻辑运算符,它们在编写计算逻辑时起到关键作用。数据类型是编程的基础,包括数值型、字符串型、日期型等,决定了变量能存储的数据种类。变量与常量则分别表示可以改变和不能改变的存储空间。数组允许存储多个相同类型的数据,提高了数据管理效率。注释和赋值语句是编写清晰代码的重要元素,注释有助于解释代码功能,赋值语句则用于设置变量的值。书写规范是编程时需遵循的规则,确保代码可读性和一致性。判断语句(如If...Then...Else)和循环语句(如For...Next,While...Wend)控制程序的流程。其他类语句如On Error处理错误,Sub过程和Function函数用于自定义操作,Property过程和Event事件过程涉及对象属性和事件响应。 VBA内部函数是预定义的、可以直接使用的功能,包括测试函数、数学函数(如求和、平均值)、字符串函数(如连接、查找)、转换函数(如CStr、CDbl)以及时间函数。文件操作部分讲解了如何在VBA中进行文件的创建、删除、打开、读取、写入和关闭,以及使用其他文件相关函数。 在VBA程序设计网络教学部分,第一课介绍了VBA的基本概念,包括它在Excel自动化中的作用,如何录制和执行宏,以及查看和编辑宏代码。第二课详细讨论了宏的管理,如何为宏分配快捷键,指定保存位置,使用个人宏工作簿,并将宏关联到按钮或图片。第三课讲解了Excel中的控件,包括开发过程、不同类型的控件(如按钮、列表框),以及如何添加、设置控件特性和使用用户窗体。第四课深入探讨了变量及其作用域,如何在模块中创建过程,声明和使用变量,特别是数组的运用。第五课展示了如何利用VBA控制工作表的访问权限,通过WITH语句、对象变量和减少对象选择来优化代码。第六课则介绍了提高VBA效率的策略,如避免不必要的屏幕更新,有效利用Excel内置的属性和方法。 这份教程提供了全面的VBA基础知识,适合初学者系统学习,为进一步掌握Excel自动化和VBA编程打下坚实基础。
2019-01-01 上传
目 录 一、VBA语言基础...................................................................................................................1 第一节 标识符....................................................................................................................................1 第二节 运算符....................................................................................................................................1 第三节 数据类型................................................................................................................................1 第四节 变量与常量............................................................................................................................1 第五节 数组........................................................................................................................................2 第六节 注释和赋值语句....................................................................................................................2 第七节 书写规范................................................................................................................................2 第八节 判断语句................................................................................................................................2 第九节 循环语句................................................................................................................................3 第十节 其他类语句和错误语句处理................................................................................................4 第十一节 过程和函数........................................................................................................................4 一.Sub过程................................................................. 4 二.Function函数............................................................ 5 三.Property属性过程和Event事件过程 ......................................... 5 第十二节内部函数.............................................................................................................................5 一.测试函数................................................................ 5 二.数学函数................................................................ 5 三.字符串函数.............................................................. 5 四.转换函数................................................................ 6 五.时间函数................................................................ 6 第十三节 文件操作............................................................................................................................6 文件........................................................................ 6 删除........................................................................ 6 打开........................................................................ 6 读入........................................................................ 7 写入........................................................................ 7 关闭........................................................................ 7 其他文件函数................................................................ 7 二、VISUAL BASIC程序设计网络教学.....................................................................................1 第一课 VBA是什么 .................................................................................................................1 1.1 VBA是什么....................................................................................................................................1 1.2 EXCEL环境中基于应用程序自动化的优点................................................................................1 1.3 录制简单的宏..............................................................................................................................1 1.4 执行宏..........................................................................................................................................2 1.5 查看录制的代码..........................................................................................................................2 1.6 编辑录制的代码..........................................................................................................................3 1.7 录制宏的局限性..........................................................................................................................3 1.8 小结..............................................................................................................................................3 第二课 处理录制的宏............................................................................................................3 2.1 为宏指定快捷键..........................................................................................................................3 2.2 决定宏保存的位置......................................................................................................................4 2.3 个人宏工作簿..............................................................................................................................4 2.3.1 保存宏到个人宏工作簿 .................................................. 4 2.3.2 使用并编辑个人宏工作簿中的宏 .......................................... 4 2.4 将宏指定给按钮..........................................................................................................................4 2.5 将宏指定给图片或其他对象......................................................................................................5 2.6 小结..............................................................................................................................................5 第三课 学习控件...................................................................................................................5 3.1 EXCEL开发过程简介....................................................................................................................5 3.2 认识不同的控件..........................................................................................................................5 3.3 向工作表添加控件......................................................................................................................6 3.4 设置控件的特性..........................................................................................................................6 3.5 给控件命名..................................................................................................................................6 3.6 使用用户窗体..............................................................................................................................6 3.7 疑难解答......................................................................................................................................7 第四课 理解变量和变量的作用..............................................................................................7 4.1 代码存在的位置:模块..............................................................................................................7 4.2 对模块的概览..............................................................................................................................7 4.2.1 创建过程.............................................................. 8 4.2.2 运行宏................................................................ 9 4.3 保存对模块所做的改变..............................................................................................................9 4.4 变量..............................................................................................................................................9 4.4.1 变量的数据类型........................................................ 9 4.4.2 用Dim语句创建变量(声明变量) .......................................... 10 4.4.3 变量命名的惯例....................................................... 10 4.4.4 使用数组............................................................. 10 4.4.5 变量赋值............................................................. 11 第五课 利用VBA设置工作表使用权限...................................................................................11 1.使用WITH语句。 ..........................................................................................错误!未定义书签。 2.使用对象变量。.........................................................................................错误!未定义书签。 方法 3:减少对象的激活和选择 ....................................................................错误!未定义书签。 方法 4:关闭屏幕更新....................................................................................错误!未定义书签。 第六课 提高EXCEL中VBA的效率............................................................................................12 方法 1:尽量使用VBA原有的属性、方法和WORKSHEET函数............................................................12 方法 2:尽量减少使用对象引用,尤其在循环中.........................................................................12 1.使用With语句。.......................................................... 12 2.使用对象变量。.......................................................... 12 3.在循环中要尽量减少对象的访问。 .......................................... 13 方法 3:减少对象的激活和选择 ....................................................................................................13 方法 4:关闭屏幕更新....................................................................................................................13 第七课 如何在EXCEL里使用定时器.......................................................................................13 三、学习微软 EXCEL 2002 VBA 编程和XML,ASP技术...........................................................15 第一章 电子表格自动化简介和了解宏命令...........................................................................15 1 了解宏............................................................................................................................................15 2 宏命令的普通应用........................................................................................................................15 3 写宏之前的计划............................................................................................................................16 4 录制宏............................................................................................................................................17 5 运行宏............................................................................................................................................18 6 修改宏代码....................................................................................................................................19 7 添加注释........................................................................................................................................21 8 分析宏代码....................................................................................................................................22 9 清除宏代码....................................................................................................................................23 10 测试修改好的宏..........................................................................................................................24 11 两个层面运行宏的方法..............................................................................................................24 12 完善你的宏代码..........................................................................................................................25 13 重新命名宏..................................................................................................................................27 14 运行宏的其它方法......................................................................................................................27 15 使用键盘快捷键运行宏..............................................................................................................27 16 通过菜单运行宏..........................................................................................................................28 17 通过工具栏按钮运行宏..............................................................................................................30 18 通过工作表里面的按钮运行宏..................................................................................................31 19 保存宏..........................................................................................................................................32 20 打印宏..........................................................................................................................................32 21 保存宏在个人宏工作簿..............................................................................................................32 22 打开含有宏的工作簿..................................................................................................................34 23VB编辑窗口...................................................................................................................................35 24 了解工程浏览窗口......................................................................................................................35 25 了解属性窗口..............................................................................................................................36 26 了解代码窗口..............................................................................................................................36 27 VB编辑器里的其它窗口..............................................................................................................38 28 接下来……..................................................................................................................................39 第二章 VBA 第一步..............................................................................................................39 1 了解指令,模块和过程................................................................................................................39 2 VBA工程命名..................................................................................................................................39 3 模块重命名....................................................................................................................................40 4 从其它工程调用过程....................................................................................................................41 5 了解对象,属性和方法................................................................................................................42 6 学习对象,属性和方法................................................................................................................43 7 句法和文法....................................................................................................................................45 8 打断很长的VBA语句......................................................................................................................47 9 了解VBA错误..................................................................................................................................47 10 查找帮助......................................................................................................................................49 11 语法和编程快捷助手..................................................................................................................50 12 属性/方法列表............................................................................................................................51 13 常数列表......................................................................................................................................51 14 参数信息......................................................................................................................................52 15 快速信息......................................................................................................................................52 16 自动完成关键字..........................................................................................................................52 17 缩进/凸出....................................................................................................................................53 18 设置注释块/解除注释块............................................................................................................53 19 使用对象浏览器..........................................................................................................................53 20 使用VBA对象库............................................................................................................................58 21 用对象浏览器来定位过程..........................................................................................................59 22 使用立即窗口..............................................................................................................................59 23 获取立即窗口里的信息..............................................................................................................61 24 学习对象......................................................................................................................................62 25 电子表格单元格操作..................................................................................................................62 26 使用RANGE属性..............................................................................................................................62 27 使用CELLS属性..............................................................................................................................62 28 使用OFFSET属性............................................................................................................................63 29 选择单元格的其它方法..............................................................................................................64 30 选择行和列..................................................................................................................................64 31 获取工作表信息..........................................................................................................................65 32 往工作表输入数据......................................................................................................................65 33 返回工作表中的信息..................................................................................................................65 34 单元格格式..................................................................................................................................66 35 移动,复制和删除单元格..........................................................................................................66 36 操作工作簿和工作表..................................................................................................................67 37 操作窗口(WINDOWS)...................................................................................................................67 38 管理EXCEL应用程序......................................................................................................................68 39 接下来……..................................................................................................................................68 第三章 了解变量,数据类型和常量.....................................................................................69 1 保存VBA语句的结果......................................................................................................................69 2 变量是什么....................................................................................................................................69 3 数据类型........................................................................................................................................69 4 如何产生变量................................................................................................................................70 5 如何声明变量................................................................................................................................71 6 明确变量的数据类型....................................................................................................................72 7 变量赋值........................................................................................................................................73 8 强制声明变量................................................................................................................................75 9 了解变量范围................................................................................................................................76 10 过程级别(当地)变量..............................................................................................................76 11 模块级别变量..............................................................................................................................77 12 工程级别变量..............................................................................................................................77 13 变量的存活期..............................................................................................................................78 14 了解和使用静态变量..................................................................................................................78 15 声明和使用对象变量..................................................................................................................79 16 使用明确的对象变量..................................................................................................................80 17 查找变量定义..............................................................................................................................80 18 在VB过程里面使用常量..............................................................................................................80 19 内置常量......................................................................................................................................81 20 接下来……..................................................................................................................................82 第四章 VBA过程:子程序和函数..........................................................................................82 1.关于函数过程...............................................................................................................................82 2.创建函数过程...............................................................................................................................82 3.执行函数过程...............................................................................................................................84 4.从工作表里运行函数过程...........................................................................................................84 5.从另外一个VBA过程里运行函数过程 .........................................................................................85 6.传递参数.......................................................................................................................................86 7.明确参数类型...............................................................................................................................87 8.按地址和按值传递参数...............................................................................................................88 9.使用可选的参数...........................................................................................................................88 10.定位内置函数.............................................................................................................................89 11.使用MSGBOX函数...........................................................................................................................90 12.MSGBOX函数的运行值...................................................................................................................94 13.使用INPUTBOX函数........................................................................................................................95 14.数据类型转变.............................................................................................................................96 15.使用INPUTBOX方法........................................................................................................................97 16.使用主过程和子过程...............................................................................................................100 17.接下来……...............................................................................................................................102 第五章 基于VBA做决定 ......................................................................................................102 1.关系和逻辑运算符.....................................................................................................................102 2.IF…THEN语句...............................................................................................................................103 3.基于多于一个条件的决定.........................................................................................................105 4.THE IF…THEN…ELSE语句.............................................................................................................106 5.IF…THEN…ELSEIF语句................................................................................................................108 6.嵌套的IF…THEN语句...................................................................................................................110 7.SELECT CASE语句...........................................................................................................................110 8.和CASE子句一起使用IS...............................................................................................................112 9.确定CASE子句里数值的范围 ......................................................................................................113 10.在CASE子句里确定多个表达式.................................................................................................114 11.接下来…...................................................................................................................................114 第六章 在VBA中重复操作...................................................................................................114 1.DO LOOPS: DO…WHILE和DO…UNTIL................................................................................................114 2.观察过程执行.............................................................................................................................117 3.WHILE…WEND循环..........................................................................................................................118 4.FOR…NEXT 循环 ...........................................................................................................................119 5.FOR EACH…NEXT循环.....................................................................................................................120 7.提前跳出循环.............................................................................................................................121 8.循环嵌套.....................................................................................................................................122 9.接下来….....................................................................................................................................122 第七章 利用VBA数组管理数据清单和表格..........................................................................122 1.了解数组.....................................................................................................................................123 2.声明数组.....................................................................................................................................124 3.数组的上界和下界.....................................................................................................................124 4.在VBA过程里使用数组...............................................................................................................124 5.数组和循环语句.........................................................................................................................125 6.使用二维数组.............................................................................................................................127 7.静态和动态数组.........................................................................................................................128 8.数组函数.....................................................................................................................................129 9.ARRAY函数.....................................................................................................................................130 10.ISARRAY函数...............................................................................................................................130 11.ERASE函数...................................................................................................................................131 12.LBOUND函数和UBOUND函数 ..........................................................................................................131 13.数组中的错误...........................................................................................................................132 14.数组作为参数...........................................................................................................................134 15.接下来…...................................................................................................................................134 第八章 利用VBA操纵文件和文件夹.....................................................................................134 1.获取当前文件夹的名称(CURDIR函数)...................................................................................135 2.更改文件或文件夹名称(NAME函数).......................................................................................135 3.检查文件或文件夹是否存在(DIR函数)................................................................................136 4.获得文件修改的日期和时间(FILEDATETIME函数).................................................................137 5.获得文件大小(FILELEN函数).................................................................................................138 6.返回和设置文件属性(GETATTR函数和SETATTR函数) .............................................................138 7.更改缺省文件夹或驱动器(CHDIR语句和CHDRIVE语句).........................................................139 8.创建和删除文件夹(MKDIR语句和RMDIR语句)........................................................................140 9.复制文件(FILECOPY语句)........................................................................................................140 10.删除文件(KILL语句) ............................................................................................................142 11.从文件读取和写入数据(INPUT/OUTPUT)...............................................................................142 12.文件访问类型...........................................................................................................................142 13.使用顺序文件...........................................................................................................................143 14.读取储存于顺序文件里的数据 ...............................................................................................143 15.逐行读取文件...........................................................................................................................143 16.从顺序文件中读取字符...........................................................................................................144 17.读取分隔文本文件...................................................................................................................145 18.往顺序文件里写数据...............................................................................................................146 19.使用WRITE # 和PRINT # 语句....................................................................................................147 20.操作随机文件...........................................................................................................................148 21.创建用户定义的数据类型.......................................................................................................148 22.操作二进制文件.......................................................................................................................152 23.操作文件和文件夹的时髦方法 ...............................................................................................153 24.使用WSH获取文件信息.............................................................................................................155 25.FILESYSTEMOBJEC的方法和属性..................................................................................................156 26.对象FILE的属性 ........................................................................................................................160 27.文件夹对象属性.......................................................................................................................161 28.驱动器对象属性.......................................................................................................................161 29.使用WSH创建文本文件.............................................................................................................162 30.使用WSH进行其它操作.............................................................................................................164 31.运行其它应用程序...................................................................................................................164 32.创建快捷方式...........................................................................................................................165 33.接下来……...............................................................................................................................166 第九章 利用VBA控制其它应用程序.....................................................................................167 1.启动应用程序.............................................................................................................................167 2.在应用程序之间切换.................................................................................................................169 3.控制其它应用程序.....................................................................................................................170 4.控制应用程序的其它方法.........................................................................................................171 5.了解自动控制.............................................................................................................................172 6.了解链接和嵌入.........................................................................................................................172 7.使用VBA进行链接和嵌入...........................................................................................................173 8.COM和自动控制...........................................................................................................................174 9.了解绑定.....................................................................................................................................174 10.后期绑定...................................................................................................................................174 11.早期绑定...................................................................................................................................174 12.建立到对象库的引用...............................................................................................................175 13.创建自动控制对象...................................................................................................................176 14.使用CREATEOBJECT函数...............................................................................................................176 15.使用自动控制创建一个新的WORD文档.....................................................................................177 16.使用GETOBJECT函数....................................................................................................................177 17.打开存在的WORD文档 ................................................................................................................178 18.使用关键字NEW..........................................................................................................................179 19.使用自动控制访问MICROSOFT OUTLOOK.......................................................................................180 20.接下来……...............................................................................................................................181 第十章 对话框和自定义窗体..............................................................................................181 1.文件打开和另存为对话框.........................................................................................................183 2.GETOPENFILENAME和GETSAVEASFILENAME方法...................................................................................187 3.创建窗体.....................................................................................................................................188 4.创建用户窗体的工具.................................................................................................................190 5.标签.............................................................................................................................................191 6.文字框.........................................................................................................................................191 7.框架.............................................................................................................................................191 8.选项按钮.....................................................................................................................................191 9.复选框.........................................................................................................................................192 10.切换按钮...................................................................................................................................192 11.列表框.......................................................................................................................................192 12.复合框.......................................................................................................................................192 13.滚动条.......................................................................................................................................192 14.旋转按钮...................................................................................................................................192 15.图像...........................................................................................................................................192 16.多页控件...................................................................................................................................192 17.TABSTRIP控件 .............................................................................................................................193 18.REFEDIT控件...............................................................................................................................193 19.在窗体上放置控件...................................................................................................................193 20.应用程序示例 1:信息调查 ....................................................................................................193 21.在窗体上添加按钮、选项框和其它控件 ...............................................................................194 22.更改控件名称...........................................................................................................................197 23.设置其它控件属性...................................................................................................................197 24.准备工作表以储存窗体数据 ...................................................................................................198 25.显示自定义窗体.......................................................................................................................199 26.设置TAB顺序..............................................................................................................................199 27.了解窗体和控件事件...............................................................................................................200 28.编写VBA过程对窗体和控件事件反应 .....................................................................................201 29.编写过程来初始化窗体...........................................................................................................201 30.编写过程填充列表框控件.......................................................................................................203 31.编写过程控制选项按钮...........................................................................................................203 32.编写过程同步文字框和旋转按钮 ...........................................................................................204 33.编写过程关闭用户窗体...........................................................................................................204 34.转移窗体数据到工作表...........................................................................................................205 35.使用INFO SURVEY应用程序.........................................................................................................206 36.应用程序示例 2:学生和考试 ................................................................................................206 37.使用多页和TABSTRIP控件..........................................................................................................206 38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程................................................................208 39.使用自定义窗体STUDENTS AND EXAMS .........................................................................................212 40.接下来……...............................................................................................................................214 第十一章 自定义集合和类模块..........................................................................................214 1.使用集合.....................................................................................................................................214 2.声明自定义集合.........................................................................................................................215 3.给自定义集合添加对象.............................................................................................................215 4.从自定义集合移出对象.............................................................................................................216 5.创建自定义对象.........................................................................................................................217 6.创建类.........................................................................................................................................218 7.变量声明.....................................................................................................................................218 8.定义类的属性.............................................................................................................................218 9.创建PROPERTY GET过程.................................................................................................................219 10.创建PROPERTY LET过程...............................................................................................................219 11.创建类方法...............................................................................................................................220 12.创建类的示例...........................................................................................................................220 13.类模块里的事件过程...............................................................................................................221 14.创建用户界面...........................................................................................................................221 15.观察VBA过程的执行.................................................................................................................229 16.接下来……...............................................................................................................................231 第十二章 使用VBA创建自定义菜单和工具栏.......................................................................231 1.工具栏.........................................................................................................................................232 2.创建自定义工具栏.....................................................................................................................233 3.删除自定义工具栏.....................................................................................................................235 4.使用COMMANDBAR的属性................................................................................................................235 5.使用COMMANDBAR控件....................................................................................................................235 6.理解和使用控件属性.................................................................................................................237 7.控件方法.....................................................................................................................................239 8.使用菜单.....................................................................................................................................240 9.菜单编程.....................................................................................................................................241 10.创建子菜单...............................................................................................................................243 11.修改内置快捷菜单...................................................................................................................244 12.创建快捷菜单...........................................................................................................................247 13.接下来……...............................................................................................................................249 第十三章 调试VBA过程和处理错误.....................................................................................249 1.测试VBA过程...............................................................................................................................249 2.终止过程.....................................................................................................................................249 3.使用断点.....................................................................................................................................250 4.在中断模式下使用立即窗口.....................................................................................................253 5.使用STOP语句 ..............................................................................................................................254 6.添加监视表达式.........................................................................................................................254 7.清除监视表达式.........................................................................................................................256 8.使用快速监视.............................................................................................................................256 9.使用本地窗口和调用堆栈对话框 .............................................................................................257 10.逐句运行VBA过程.....................................................................................................................258 11.逐句运行过程...........................................................................................................................259 12.逐过程执行过程.......................................................................................................................259 13.设置下一条语句.......................................................................................................................260 14.显示下一条语句.......................................................................................................................260 15.终止和重新设置VBA过程.........................................................................................................260 16.了解和使用条件编译...............................................................................................................260 17.操纵书签...................................................................................................................................262 18.捕捉错误...................................................................................................................................262 17.接下来……...............................................................................................................................266 第十四章 微软EXCEL 2002 中的事件编程...........................................................................266 1.事件过程介绍.............................................................................................................................266 2.激活和失活事件.........................................................................................................................267 3.事件次序.....................................................................................................................................268 4.工作表事件.................................................................................................................................268 5.工作簿事件.................................................................................................................................272 6.图表事件.....................................................................................................................................282 7.内嵌图表事件.............................................................................................................................284 8.可为应用软件对象识别的事件 .................................................................................................285 9.查询表时间.................................................................................................................................288 10.接下来……...............................................................................................................................289 第十五章 在EXCEL里使用ACCESS........................................................................................289 1.对象库.........................................................................................................................................289 2.建立对对象库的引用.................................................................................................................292 3.链接到ACCESS...............................................................................................................................293 4.使用AUTOMATION链接到ACCESS数据库...........................................................................................293 5.使用DAO链接到ACCESS数据库.....................................................................................................295 6.使用ADO链接到ACCESS数据库.....................................................................................................295 7.从EXCEL执行ACCESS任务...............................................................................................................296 8.创建新ACCESS数据库...................................................................................................................296 9.打开ACCESS窗体...........................................................................................................................298 10.打开ACCESS报表.........................................................................................................................300 11.运行ACCESS查询.........................................................................................................................301 12.运行选择查询...........................................................................................................................302 13.运行参数查询...........................................................................................................................303 14.调用ACCESS函数.........................................................................................................................304 15.获取ACCESS数据到EXCEL工作表.................................................................................................304 16.使用GETROWS方法获取数据.......................................................................................................304 17.使用COPYFROMRECORDSET方法获取数据.......................................................................................305 18.使用TRANSFERSPREADSHEET方法获取数据....................................................................................306 19.使用OPENDATABASE方法...............................................................................................................307 20.从ACCESS数据创建文本文件.....................................................................................................309 21.从ACCESS数据创建查询表.........................................................................................................310 22.在EXCEL里使用ACCESS数据.........................................................................................................311 23.用ACCESS数据创建内嵌图表.....................................................................................................311 24.传输EXCEL电子表格到ACCESS数据库.........................................................................................313 25.将EXCEL电子表格链接到ACCESS数据库.....................................................................................313 26.将EXCEL电子表格导入ACCESS数据库.........................................................................................314 27.放置EXCEL数据到ACCESS表中.....................................................................................................314 28.接下来……...............................................................................................................................316