文件要打开看过后就自动删除,如何通过VBA程序来实现呢?
解决方案:将文件的ChangeFileAccess属性设置为只读,即xlReadOnly,然后通过Kill代码删除文件即可。不过为了确保用户可以正常地查看文件一次,需要将代码写入工作簿时间“Workbook_BeforeClose”中。
具体方法如下:
第一步:新建一个工作簿(也可以打开已经存在的工作簿),按Alt+F11组合键打开VBE窗口。
第二步:双击Thisworkbook进入工作簿事件代码窗口,然后输入以下代码:
Private Sub Workbook_BeforeClose(Cancel As
Boolean)
ActiveWorkbook.ChangeFileAccess xlReadOnly ‘将文件设为只读模式
Kill ActiveWorkbook.FullName ‘删除文件
Application.Quit ‘退出程序
End Sub
第三步:保存工作簿,但不能关闭Excel。然后进入文件夹将文件复制两份,将两个文件夹分别命名为A.xlsm和B.xlsm。
第四步:关闭Excel,发现当前文件夹会自动删除,且不经过回收站回收,直接彻底删除。
工作簿再启用宏级文件属性为只读的前提下,通过Kill工作簿全名可以删除本工作簿。其中工作簿全名可以使用ActiveWorkbook.FullName表示也可以用Thisworkbook.FullName表示。
第五步:打开B.xlsm,然后关闭,B.xlsm也立即自我销毁。此时将A.xlsm发给客户即可。
注意,文件“自杀”的时候,工作簿的ChangeFileAccess属性有两个选项,包括xlReadWrite和xlReadOnly,只有在xlReadOnly状态下才可以实现删除当前文件。在编写这类“自杀”代码的时候,一定要先将文件备份,否则程序关闭就自我销毁,无法回收。