excel表格名称的秘密( 三 )


同样 , 任何外部子过程遍历加载项的Names集合 , 可以读取、修改和删除中所有隐藏的或者未隐藏的工作簿名称 。
隐藏的名称空间避免了这些危险 , 它也比基于环境字符串的实例、临时文件或注册输入等方法更简单 , 而且隐藏的名称空间是永久的 , 用户能关闭和重新打开该工作簿而无须重新设置这个计数器 。
在下面的代码中 , 函数SetHName、GetHName和DelHName允许创建、获取和删除隐藏的名称 , 而无须直接使用冗长的Application.ExecuteExcel4Macro方法 。
Sub Main()
Application.EnableCancelKey = xlDisabled
Dim Count
Count = GetHName(“TswbkCount”)
If IsError(Count) Then
SetHName “TswbkCount”, 3
ElseIf Count = 1 Then
MsgBox “宏被禁止. 你必须重新启动Excel.”, vbInformation
Else
SetHName “TswbkCount”, Count – 1
End If
End Sub
Sub SetHName(Name As String, Value)
Application.ExecuteExcel4Macro _
“SET.NAME(“”” & Name &”””,” & Value & “)”
End Sub
Function GetHName(Name As String)
GetHName = Application.ExecuteExcel4Macro(Name)
End Function
Sub DelHName(Name As String)
Application.ExecuteExcel4Macro”SET.NAME(“”” & Name & “””)”
【excel表格名称的秘密】End Sub

推荐阅读