分享

Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步

 Excel实用知识 2021-03-15

当Excel工作簿中含有VBA代码时,用户在使用时需要启用宏,否则工作簿的某些功能就会失效。或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要强制用户启用宏。看过以下三篇文章的小伙伴也提出同样的问题。

Excel科幻电影效果,文件倒计时销毁功能,网友直呼太科幻 

Excel工作表打开一次后自动销毁文件,回收站中都找不到 

Excel工作簿自动销毁功能,使用时间到期后自动删除文件 

经过两天的深思熟虑终于找到解决问题办法。思路是通过编辑VBA代码,打开Excel工作簿后自动检测宏是否被启用,如果宏处于禁用状态,工作簿会自动隐藏关键数据所在的工作表,此处的隐藏属于深度隐藏,无法直接取消隐藏工作表。

步骤一:打开Excel工作簿后,再插入一个新的工作簿Sheet2用来存放关键数据,Sheet1作为提示工作簿,主要功能是提示用户必须强制启用宏和启用宏的方法,否则隐藏关键数据所在的工作表。

Excel在打开含有宏的工作簿时,会提示用户是否启用宏,如果没有做任何提示,此时就需要用户自己动手启用。启用宏的操作步骤依次是:文件→选项→信任中心→信任中心设置→宏设置→启用所有宏→确定。

步骤二:接下来就是编辑VBA代码,打开Visual Basic编辑器后,将以下代码复制粘贴到ThisWorkbook代码窗口中,最后对VBAProject进行加密处理,主要是保护VBA代码不被删除或更改,以保证整个工作簿的安全性。设置完成后关闭Visual Basic编辑器回到工作簿操作界面。

代码区域:

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim sh As Worksheet

Sheet1.Visible = True

For Each sh In Me.Worksheets

If UCase(sh.Name) <> "SHEET1" Then sh.Visible = xlSheetVeryHidden

Next sh

Me.Save

End Sub

Private Sub Workbook_Open()

If UCase(sh.Name) <> "SHEET1" Then sh.Visible = True

Next sh

Sheet1.Visible = xlSheetVeryHidden

End Sub

步骤三:工作簿的存储也非常重要,需要将Excel工作簿另存为【*.xls】格式或【*.xlsm】格式,因为【*.xlsx】格式无法识别带有宏的工作表,保存后宏会自动清除。

需要注意的是,在宏禁用的情况下,默认隐藏的是除Sheet1工作表之外的其他工作表,请勿将重要数据存放在Sheet1工作表之中。当启用宏后,工作簿会自动隐藏Sheet1工作表。

至此,Microsoft Excel强制用户启用宏的操作方法已经介绍完毕。如果对操作过程有些费解,请浏览查阅前三篇文章获取答案,也许会有不一样的效果。如果感兴趣可以结合前三篇文章的内容,制作属于自己的工作簿,相信您定会让他人大吃一惊。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多