![](/img/trans.png)
[英]Change excel macro settings (temporarily) from outlook,when opening an email on outlook specific folder
[英]Check Excel Macro Security Settings
我有一个启动Excel宏的vb.net应用程序。 有没有一种方法可以先检查Excel的宏安全设置?
Imports Excel = Microsoft.Office.Interop.Excel
Private Sub macrotest ()
objExcel.Workbooks.Open(strPath)
if ***'Check her what macro Security Settings is selected!*** Then
objExcel.Run("SortIO")
end if
End Sub
我在此站点上发现可以检查注册表的安全设置。 我发现的一个问题是我的注册表项不在站点上所引用的确切位置。 话虽这么说,您可能只想尝试捕获它,或者使用更复杂的方法在注册表中查找VBAWarnings项。
Dim strVBASecuritySetting As String = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security", _
"VBAWarnings", String.Empty)
If strVBASecuritySetting = "1" Then
objExcel.Run("SortIO")
End If
这些是VBAWarnings的可能值:
这似乎已经交叉发布到Excel VBA问题页面:您介意说慢一点吗?
... 读起来很慢 ...
好吧,我可以在VBA中给您一个答案: Excel.Application.AutomationSecurity
属性。
可用值由Office.MsoAutomationSecurity枚举:
1 msoAutomationSecurityLow
2个msoAutomationSecurityByUI
3 msoAutomationSecurityForceDisable
这些是公开给VBA的API中可用的宏的设置。 功能区的“开发人员”选项卡中可见的用户界面与NoAlias在上一个答案中解释的注册表设置相对应:
HKEY_CURRENT_USER \\ Software \\ Microsoft \\ Office \\ 15.0 \\ Excel \\ Security \\ VBA警告
具有以下枚举值:
如果您沿注册表路线走,VBA编码器的建议是使用WMI脚本公开的安全注册表类...并检查您的用户是否确实具有使该注册表写入的特权:可能存在一个注册表策略防止它的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.