如果不启用宏,自动关闭工作簿是无法办到的。因为不启用宏,任何代码都不会运行,怎么会自动关闭工作簿呢。
通常的做法是,在关闭工作簿事件中将所有有用的工作表深度隐藏,显示一个没有的工作表,可在其中写明必须启用宏之类的提示信息。在工作簿打开事件中,将有用工作表显示,无用工作表隐藏。这样当不启用宏打开工作簿将没有任何有用内容,只能看见一个无用工作表中的提示信息。打开时启用宏才能看到和使用正常的工作表。
说明:深度隐藏的工作表是无法人工显示出来的,只能由代码显示出来。
前一个可以,
Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:01:00"), "Close"
End Sub
Private Sub Close()
Thisworkbook.Close
End Sub
--------------------------
后一个是不可能的。
因为如果没有启用宏,那么你所有的代码都不会运行,又如何判断呢。相反,
如果代码能运行说明一定是启用了宏,且安全级别低。
因为你想用代码关闭文档,那么宏是必须启用的,否则,代码是不运行的。
这是件很矛盾的事。终归不可能解决!
记忆里可以修改模板,貌似只对某些版本有效就是了。
其他的给你个方法:
将你的所有主要功能(包括基本表格的建立,格式的初始化,宏代码的生成--宏可以给模块添加宏代码哦^_^)用VB做成dll
在excel宏里面对dll进行调用并实现功能,
接下来你可想而之了,如果要使用你的功能,必须开启宏,否则连你的表格都看不见,包括你的基本代码,如果开启宏了,那么你就好控制了,^_^
具体步骤自己开发,希望采纳!