[转载]自动删除VBA代码
(2015-02-08 15:54:31)
标签:
转载 |
Excel文档VBA代码自动删除
有时候,不想让自己编写的代码让别人长期使用或换地方使用,又不想让文档自杀,就可以设计限期清除代码,或其他限制条件下清除。具体限制条件可参考博主《Excel文档自杀程序设计》Workbook_Open模块那一部分。代码清除后,与代码有关的程序就不能运行了。
如设置2011年12月31日后打开文档就清除代码,可以这样设计:
Private Sub Workbook_Open()
On Error Resume Next
If Date>40908 then Then Call 删除代码
End Sub
删除代码的程序是
Sub
删除代码()
For i = 1 To
ActiveWorkbook.VBProject.VBComponents.Count
Next i
End Sub
如果要把窗体、模块、类模块一并删除可改为一下代码
Sub
删除代码()
For
Next i
Dim Vbc As Object
For Each Vbc In Application.ThisWorkbook.VBProject.VBComponents
End
sub
一般在打开文档时设置限定清除代码条件,也可在关闭文件时设置限定条件。
Private Sub
Workbook_Open()
On Error Resume Next
If Date>40908 then Then Call 删除代码
End Sub
Sub
删除代码()
解除工程保护
Next i
Dim Vbc As Object
For Each Vbc In Application.ThisWorkbook.VBProject.VBComponents
End Sub
Sub
解除工程保护()
End
Sub
程序不是很稳定,有时候会出现错误,这也可能是Excel内部原因。该程序只能删除全部代码,如果只想删除某一部分代码,可自行研究删除代码部分内容。