Sub CheckActiveXEnabled()
Dim rng As String
Dim regKey As String
Dim result As Long
' 定义注册表键
regKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _
Application.Version & "\Excel\Security\"
' 检索 ActiveX 控件的设置
On Error Resume Next
result = GetSetting("Microsoft Excel", "Security", "ActiveXControl", 0)
On Error GoTo 0
If result = 0 Then
MsgBox "ActiveX 控件已经启用", vbInformation
Else
MsgBox "ActiveX 控件没有启用", vbExclamation
End If
End Sub
' 获取注册表项的值
Function GetSetting(appName As String, keyName As String, settingName As String, defaultValue As Variant) As Variant
Dim regValue As Variant
Dim r As Long
On Error Resume Next
regValue = GetRegValue("HKEY_CURRENT_USER\", appName & "\" & keyName, settingName)
If Err.Number <> 0 Then
GetSetting = defaultValue
Else
GetSetting = regValue
End If
On Error GoTo 0
End Function
' 从注册表中获取值
Function GetRegValue(root As String, path As String, valueName As String) As Variant
Dim regValue As Variant
On Error Resume Next
regValue = CreateObject("WScript.Shell").RegRead(root & path & "\" & valueName)
On Error GoTo 0
GetRegValue = regValue
End Function