我想让 Microsoft Excel 工作簿在用户打开工作簿时显示“管理:COM 加载项”对话框。我正在 Excel 2016 上对此进行测试,但也可以使用 2019。 (我的生产环境使用其中之一。)
我试过这段代码,它打开“Excel 加载项”而不是“COM 加载项”,然后返回一个无效的过程调用:
Sub OpenComAddInsOptions()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
Application.CommandBars("Worksheet Menu Bar").Controls("Tools").Controls("Add-Ins...").Execute
Dim addInWindow As Object
Set addInWindow = Application.CommandBars("Add-Ins").Controls("COM Add-Ins")
addInWindow.Execute
End Sub
我尝试了这段代码中的各种“控件”变体,但找不到任何有效的变体。
我接下来想到我可以发送键码来打开“选项”窗口,然后导航到“加载项”部分,最后使用此代码“COM 加载项”,但它不会打开“选项”窗口而是返回“400”错误:
Sub OpenManageComAddInsOptions()
'Open Excel Options window and navigate to Add-ins section
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
Application.SendKeys "%FT"
Application.SendKeys "{DOWN 8}"
Application.SendKeys "%A"
Application.SendKeys "{DOWN}"
Application.SendKeys "%G"
End Sub
我只测试了发送键“%ft”,它没有打开“选项”窗口。为了测试语法,我测试了 SendKeys“%pm”,这可以打开页面/边距窗口,然后确认 Alt+f+t 从键盘打开“选项”。
然后我尝试使用此代码打开“选项”菜单,但它们都返回“400”错误:
Sub OpenExcelOptions()
Application.Dialogs(xlDialogOptions).Show
End Sub
和
Sub OpenExcelOptions()
Application.ExecuteExcel4Macro "SHOW.DIALOG(400,,1)"
End Sub
我确认对话框“xlDialogPrint”和“xlDialogOpen”打开它们各自的窗口,所以这个语法也应该是正确的。微软给了我“xlDialogOptions”语言,但没有用。
还有其他建议吗?
我想让 Microsoft Excel 工作簿在用户打开工作簿时显示“管理:COM 加载项”对话框。
Application.CommandBars.ExecuteMso "ComAddInsDialog"