- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ExcelVBA实例教程044禁用宏则关闭工作簿
通常情况下,当应用程序的宏安全性的安全级别设置为“中”时,打开包含Microsoft Excel 4.0版的宏的工作簿,将显示如图 1所示的“安全警告”对话框。?图 1 安全警告对话框如果用户选择“禁用宏”按钮,则会显示如图 2所示的警告消息框,当用户选择“否”时,不能打开该工作簿;用户选择“是”时,打开该工作簿,但VBA宏被禁止,而Microsoft Excel 4.0版的宏未被禁止。?图 2 Microsoft Excel 4.0宏警告对话框我们可以利用禁用VBA宏不能禁止Microsoft Excel 4.0版的宏这个特点,使用Microsoft Excel 4.0版的宏来实现禁用宏则关闭工作簿的功能。步骤1新建或打开需要添加此项功能的工作簿文件。步骤2按Ctrl+F11组合键为工作簿添加一个宏表,添加的宏表名称默认为“Macro1”。步骤3在宏表“Macro1”的A1至A7单元格中输入下面的内容。禁用宏则关闭工作簿=ERROR(FALSE)=IF(ERROR.TYPE(RUN(TestMacro))=4)=??ALERT(因禁用了宏功能,文件将被关闭!,3)=??FILE.CLOSE(FALSE)=END.IF()=RETURN()完成后的宏表如图 3所示。?图 3 完成输入后的宏表代码解析:Microsoft Excel 4.0宏函数以等号(=)开始,其他不是由等号开始的内容将被视作注释。通常用作定义的宏名称或者作为宏函数实现功能的注释内容设置为斜体字样以示区别,如图 3中单元格A1所示。第2行代码关闭错误检查功能。如果关闭错误检查,那么当宏执行遇到错误时,Microsoft Excel 将不予理会而继续执行。第3行到第6行代码使用If函数与End.If函数构成条件判断语句。其中,第3行中的语句通过检查宏函数RUN(TestMacro)的返回错误类型是否为4(禁用宏时的返回结果),判断工作簿是否禁用了宏功能。如果第3行的结果为True,则执行下面的语句。在第4、5行代码,插入几个空格来表示相关代码之间的层次结构。第4行中的代码显示一个消息框。第5行中的代码关闭当前活动工作簿,设置参数值为Fasle表示关闭时工作簿时不保存对其所作的更改。第7行代码终止当前代码的执行。Microsoft Excel 4.0宏要求每个宏必须使用RETURN或HALT函数结束。步骤4为每个表添加工作表级别的名称“Auto_Activate”,并将引用都指向宏表“Macro1”的A2单元格。“Auto_Activate”是一个自动宏,表被激活时自动执行。添加工作表级别的名称的方法如下:选择一张工作表,假设为表“Sheet1”,单击菜单“插入”→“名称”→“定义名称”。在“定义名称”对话框中添加名称,如图 4所示。?图 4 定义工作表级别的名称输入完成后单击“确定”按钮,完成一张工作表的“Auto_Activate”的定义。完成定义后的名称将在“定义名称”对话框中显示,如图 5所示。依次为每个表添加“Auto_Activate”名称。?图 5 名称对话框中的工作表级名称此外,使用VBA也可以实现同样的操作,并且使用VBA的好处是能够隐藏名称,以避免名称被删除或修改。代码如下:Sub AddPrivateNames() Dim sht As Object For Each sht In Sheets?ThisWorkbook.Names.Add sht.Name !Auto_Activate, _=Macro1!$A$2, False NextEnd Sub步骤5运行下面的代码,隐藏宏表工作表:Sub HideMacroSheet() ThisWorkbook.Excel4MacroSheets(1).Visible = xlSheetHiddenEnd Sub步骤6保存工作簿。当应用程序的宏安全性的安全级设置为“中”时,如果用户打开该工作簿文件并选择“禁用宏”,将显示如图 2所示的警告消息框。当用户选择“是”时,活动工作表上的自动宏“Auto_Activate”将被执行,执行结果显示如图 6所示的消息框,当用户选择“确定”按钮后,将强制关闭该工作簿文件。?图 6 警告消息框
文档评论(0)