本帖最后由 爱疯 于 2012-7-16 17:38 编辑
[hide]
要实现限制文件的使用次数,想来应该在某个地方存储文档已用的次数,并且在文档每被使用一次这个使用次数就得发生相应的更改。如果这个思路正确的话,我们就可以利用文档属性的某个位置来实现这一想法,故有了以下两种形式:
一、利用自定义属性:因为我们可以自定义数字型的属性,这一点非常符合我们的需求
先用一行代码ThisWorkbook.CustomDocumentProperties.Add Name:="open_times", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=10来定义一个名为open_times的数字型属性、初始值为10。当然也可以手动定义
然后在文档的打开事件中写入:
Private Sub Workbook_Open() If ThisWorkbook.CustomDocumentProperties("open_times") < 1 Then MsgBox "可用次数已小于1" Else ThisWorkbook.CustomDocumentProperties("open_times") = ThisWorkbook.CustomDocumentProperties("open_times") - 1 End If End Sub
注:1、这里我们只讨论在必须启用宏的情况下。2、这里只写了打开文档的次数,要想保存、修改等等,请作相应改动。3、限制的代码请自行修改,此处只写了MsgBox "可用次数已小于1"这么一个提示信息
二、上一个方法自然、直观,但不隐蔽。再利用内置文档属性直观上不容易发现的:
先用一行代码ThisWorkbook.BuiltinDocumentProperties.Item("comments")=""将备注清空,然后文档每打开一次其备注增加一个空格,再判断其长度,当长度达到我们的限制要求时,作相应操作:
Private Sub Workbook_Open() ThisWorkbook.BuiltinDocumentProperties.Item("comments") = ThisWorkbook.BuiltinDocumentProperties.Item("comments") & " " If Len(ThisWorkbook.BuiltinDocumentProperties.Item("comments")) > 10 Then MsgBox "已超过可用次数" End If End Sub
注:同前,限制的代码请自行修改,此处只写了一个提示信息
[/hide
]
[此贴子已经被作者于2010-5-9 8:09:29编辑过] |