自动删除VBA代码 vba到期自动删除设置

自动删除VBA代码

(2011-09-0417:04:23)转载
标签:

vba

删除代码

Excel文档VBA代码自动删除

有时候,不想让自己编写的代码让别人长期使用或换地方使用,又不想让文档自杀,就可以设计限期清除代码,或其他限制条件下清除。具体限制条件可参考作者《Excel文档自杀程序设计》Workbook_Open模块那一部分。代码清除后,与代码有关的程序就不能运行了。

如设置2011年12月31日后打开文档就清除代码,可以这样设计:

Private Sub Workbook_Open()’这个程序一定要在Thisworkbook模块中

On Error Resume Next

If Date>40908 then ThenCall删除代码

End Sub

删除代码的程序是

Sub删除代码()’这个程序要在标准的Moudle模块中

Fori = 1 ToActiveWorkbook.VBProject.VBComponents.CountActiveWorkbook.VBProject.

VBComponents(i).CodeModule.DeleteLines1, _
ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines

Next i

End Sub

如果要把窗体、模块、类模块一并删除可改为一下代码

Sub删除代码()’这个程序要在标准的Moudle模块中最好

Fori = 1 ToActiveWorkbook.VBProject.VBComponents.CountActiveWorkbook.VBProject.

VBComponents(i).CodeModule.DeleteLines1, _
ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines

Next i

Dim Vbc AsObject

For Each Vbc InApplication.ThisWorkbook.VBProject.VBComponents

SelectCase Vbc.Type

Case1, 2, 3

WithApplication.VBE.ActiveVBProject.VBComponents

.Remove.Item(Vbc.Name)’移除模块、类模块、窗体

EndWith

EndSelect

Next

Endsub

“删除代码”这几个字太显眼,使用时可改为其他英文字母代替程序名称,如拼音SCDM等。

一般在打开文档时设置限定清除代码条件,也可在关闭文件时设置限定条件。

如果你设置了工程密码保护,那么在运行上程序时就会出错。代码就删除不了。因此就要添加VBA工程解除密码保护程序。修改后程序具体设置如下:

Private SubWorkbook_Open()'这个程序一定要在Thisworkbook模块中

On Error Resume Next

If Date>40908 then ThenCall删除代码

End Sub

Sub删除代码()'这个程序要在标准的Moudle模块中最好

解除工程保护'引用本模块的解除保护程序

Fori = 1 ToActiveWorkbook.VBProject.VBComponents.CountActiveWorkbook.VBProject.

VBComponents(i).CodeModule.DeleteLines 1, _
自动删除VBA代码 vba到期自动删除设置
ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines

Next i

Dim Vbc AsObject

For Each Vbc InApplication.ThisWorkbook.VBProject.VBComponents

SelectCase Vbc.Type

Case1, 2, 3

WithApplication.VBE.ActiveVBProject.VBComponents

.Remove.Item(Vbc.Name)’移除模块、类 模块、窗体

EndWith

EndSelect

Next

End Sub

Sub解除工程保护()'这个程序也要在标准的Moudle模块中

Dim strPassWord AsString

Application.VBE.MainWindow.Visible= False

strPassWord ="123"’引号里面必须是你的真实的工程保护密码

Application.VBE.CommandBars.FindControl(ID:=2578).Execute

SendKeysstrPassWord &"{enter}{tab}{enter}"

DoEvents

EndSub

程序不是很稳定,有时候会出现错误,这也可能是Excel内部原因。该程序只能删除全部代码,如果只想删除某一部分代码,可自行研究删除代码部分内容。


  

爱华网本文地址 » http://www.aihuau.com/a/25101014/224476.html

更多阅读

iTunes怎么备份软件 itunes怎么备份程序

iTunes怎么备份软件——简介iTunes具备自动同步苹果设备资料的功能,只要先在iTunes中设置好软件可以同步的权限,那么每次打开iTunes其即会自动根据设置的条件来自动备份iPhone手机相关资料。iTunes怎么备份iPhone手机上的软件?其实方法

如何设置开机启动项 bios设置u盘启动

如何设置开机启动项——简介开机启动项设置包括两个方面。一是如何禁用开机启动。二则是软件如何开启开机启动。一般开机启动项不需要太多所以需要进行管理。而有的程序需要开机启动的话则可以进行一些设置。如何设置开机启动项—

如何设置Win 7自动休眠 win8自动休眠设置

如何设置Win 7自动休眠——简介电脑开着,长时间不用,一方面耗电,一方面会加大电脑的损耗,所以应当让计算机自动休眠。win7系统长时间不用,会自动休眠,时间怎么设置,或者没有自动休眠,会如何设置。如何设置Win 7自动休眠——方法/步骤如何

声明:《自动删除VBA代码 vba到期自动删除设置》为网友牛仔控分享!如侵犯到您的合法权益请联系我们删除