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

知识改变命运,科技成就未来。

当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()

Dim sh As Worksheet

For Each sh In Me.Worksheets

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

动动手指点击关注和转发,让更多的人告别加班的烦恼,每天掌握一些科技小技巧,相信也会为您的工作和生活带来便捷。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190822A087F400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券