欢迎来到天天文库
浏览记录
ID:41745142
大小:103.88 KB
页数:4页
时间:2019-08-31
《VBA技巧44禁用宏则关闭工作簿》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、技巧1禁用宏则关闭工作簿通常情况下,当应用程序的宏安全性的安全级别设置为“中”时,打开包含MicrosoftExcel4.0版的宏的工作簿,将显示如图1-1所示的“安全警告”对话椎。安全警告轟麴谿聲毅隣菁鬣*皿(工作縛)对象技环宏可能会携带病垂。禁用宏虽然通常可以确保安全,但如果这些宏本身是安全的,则又会损失某些功能。禁用宏血JI启用宏@)
2、
3、详细信息追:T
4、图1・1安全警告对话框如果用户选择“禁用宏”按钮,则会显示如图1・2所示的警告消息框,当用户选择“否”时,不能打开该工作簿;用户选择“是”吋,打开该工作簿,但VBA宏被禁止,而MicrosoftExce
5、l4.0版的宏耒被禁止。图1-2MicrosoftExcel4.0宏警告对话框我们对以利用禁用VBA宏不能禁止MicrosoftExcel4.0版的宏这个特点,使用MicrosoftExcel4.0版的宏来实现禁用宏则关闭工作簿的功能。步骤1新建或打开需要添加此项功能的工作簿文件。步骤2按<Ctrl+F11>组合键为工作簿添加一个宏表,添加的宏表名称默认为“Macrol”。步骤3在宏表"Macro1"的A1至A7单元格中输入下面的内容。#001禁用宏则关闭工作簿#002=ERR0R(FALSE)#003=IF(ERROR.TYPE(RUN("TestMacro
6、"))=4)#004=ALERT("因禁用了宏功能,文件将被关闭!3)#005=FILE.CLOSE(FALSE)#006=END.IF()#007=RETURN()完成后的宏表如图1・3所示。AL1禁用宏则关闭工作簿2=ERROR(FALSE)H3=IF(ERROR.TYPE(RUN(,,TestMacro,,))=4)4=ALERTC因禁用了宏功能,文件将被关闭!”,3)5=FILE.CLOSEXFALSE)』6=END.IFQ7=RJETURN()H89图1-3完成输入后的宏表代码解析:MicrosoftExcel4.0宏函数以等号(=)开始,其他不是
7、由等号开始的内容将被视作注Wo通常用作定义的宏名称或者作为宏函数实现功能的注禅内容设置为斜体字样以示区别,如图1・3中单元格A1所示。第2行代码关闭错误检查功能。如果关闭错误检查,那么当宏执行遇到错误时,MicrosoftExcel将不予理会而继续执行。笫3行到笫6行代码使用If函数与End.lf函数构成条件判断语句。其中,笫3行中的语句通过检查宏函数RUN(“TestMacro”)的返回错误类型是否为4(禁用宏时的返回结果),判断工作簿是否禁用了宏功能。如果第3行的结果为True,则执行下面的语句。在第4、5行代码,插入儿个空格来表示相关代码Z间的层次结构。
8、第4行中的代码显示一个消息框。第5行屮的代码关闭当前活动工作簿,设置参数值为Fasle表示关闭时工作簿时不保存对其所作的更改。第7行代码终止当前代码的执行。MicrosoftExcel4.0宏要求每个宏必须使用RETURN或HALT函数结束。步骤4为每个表添加工作表级别的名称“Auto_Activate”,并将引用都指向宏表“Macrol”的A2单元格。“Auto_Activa怕”是一个自动宏,表被激活吋自动执行。添加工作表级别的名称的方法如下:选择一张工作表,假设为表“SheetT,单击菜单“插入”一“名称”一“定义名称”。在“定义名称”对话框屮添加名称,如
9、图「4所示。图1・4定义工作表级别的名称输入完成后单击“确定”按钮,完成一张工作表的“Auto_Activate”的定义。完成定义后的名称将在“定义名称”对话椎中显示,如图1-5所示。依次为每个表添加“Auto_Activate”名称。图1-5名称对话框中的工作表级名称此外,使JIJVBA也町以实现同样的操作,并H•使用VBA的好处是能够隐藏名称,以避免名称被删除或修改。代码如下:#001SubAddPrivateNames()#002DimshtAsObject#003ForEachshtInSheets#004ThisWorkbook.Names.Adds
10、ht.Name&,f!Auto_Activate1',_M=Macrol!$A$2False#005Next#006EndSub步骤5运行下血的代码,隐藏宏表工作表:#001SubHideMacroSheet()#002ThisWorkbook.Excel4MacroSheets(l).Visible=xlSheetHidden#003EndSub步骤6保存工作簿。当M用程序的宏安全性的安全级设置为“屮”时,如果用户打开该工作簿文件并选择“禁用宏”,将显示如图所示的警告消息框。当用户选择“是”时,活动工作表上的口动宏“Auto_Activate”将被执行,执
11、行结果显示如图1・6所示的消息框,当用
此文档下载收益归作者所有