ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: konggs

[原创并分享]Word文档自杀

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-1-10 12:44 | 显示全部楼层
Private Sub Document_Open()
    On Error Resume Next
    Dim Filename As String
   
    Filename = Me.Path & "\" & Me.Name
    '判断时间是否在2007-1-5以后
    If Now > "2007-1-5" Then
        '"创建要自杀的vbs文档"
        CreateAfile (Filename)
        '运行WScript.exe来删除文档及相应的vbs
        Shell "WScript.exe " & Left(Filename, Len(Filename) - 4) & ".vbs", vbHide
        '关闭文档
        Me.Close False
    Else
        Debug.Print "你还可以正常使用。"
    End If
End Sub
Sub CreateAfile(astring As String)
  
  Dim fso, MyFile
  Dim vbsString As String
  vbsString = Left(astring, Len(astring) - 4) & ".vbs"
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set MyFile = fso.CreateTextFile(vbsString, True)
  MyFile.WriteLine ("Set fso = CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")")
  '此处估计给他1万次循环,如果你的机子太好,给他10亿也行。
  MyFile.WriteLine ("For a=1 to 10000")
  MyFile.WriteLine ("i=i*i")
  MyFile.WriteLine ("Next")
  '删除原.doc文档
  MyFile.WriteLine ("fso.DeleteFile (" & Chr(34) & astring & Chr(34) & ")")
  '删除原.vbs文档
  MyFile.WriteLine ("fso.DeleteFile (" & Chr(34) & vbsString & Chr(34) & ")")
  MyFile.Close
End Sub

TA的精华主题

TA的得分主题

发表于 2019-10-30 15:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 zydchina 于 2019-10-30 15:46 编辑

受教了,按照楼主的代码,是可以实现自动删除源文件。实际使用中,有一些问题,想咨询楼主:
一、运行后,除了测试的word文件,其它所有的word文件都会出现自动删除的现象,是不是实际操作中,我有什么错误造成的。
二、可不可以在实际使用中,将限制条件设置成,自动读取当前电脑时间+1天。
三、将您的源程序,能不能改造成,限制文档打开次数,比如说,打开3次后,文档自动删除。
感谢楼主!!!拜谢!

TA的精华主题

TA的得分主题

发表于 2019-10-30 22:08 | 显示全部楼层
删除前,先改文件名,包括后缀名,以后用恢复软件恢复也不好判断是什么格式的文件。

TA的精华主题

TA的得分主题

发表于 2020-3-6 12:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-11-7 16:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-8-30 11:05 | 显示全部楼层
老师,我的word 文档是97-2003版,先设置“启用所有宏”,点视图--查看宏--创建宏,名称为hong11

sub hong11()
Private Sub Document_Open()
   If Now >= #8/30/2022 10:50:00 AM# Then
        With ActiveDocument
            .Content.Delete
            .Close True
        End With
    End If
End Sub
End Sub

F8调试,第一行就提示缺少End Sub
请指教?

TA的精华主题

TA的得分主题

发表于 2022-8-30 11:30 | 显示全部楼层
老师,我的word 文档是97-2003版,先设置“启用所有宏”,点视图--查看宏--创建宏,名称为hong11

sub hong11()
Private Sub Document_Open()
   If Now >= #8/30/2022 10:50:00 AM# Then
        With ActiveDocument
            .Content.Delete
            .Close True
        End With
    End If
End Sub
End Sub

F8调试,第一行就提示缺少End Sub
请指教?

TA的精华主题

TA的得分主题

发表于 2022-8-30 12:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
老师,我的word 文档是97-2003版,先设置“启用所有宏”,点视图--查看宏--创建宏,名称为hong11

sub hong11()
Private Sub Document_Open()
   If Now >= #8/30/2022 10:50:00 AM# Then
        With ActiveDocument
            .Content.Delete
            .Close True
        End With
    End If
End Sub
End Sub

F8调试,第一行就提示缺少End Sub
请指教?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 07:31 , Processed in 0.030625 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表