VBA宏在打开时打开“选项”

问题描述 投票:0回答:1

我想让 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”语言,但没有用。

还有其他建议吗?

excel vba com excel-addins
1个回答
1
投票

我想让 Microsoft Excel 工作簿在用户打开工作簿时显示“管理:COM 加载项”对话框。

尝试CommandBars.ExecuteMso方法

Application.CommandBars.ExecuteMso "ComAddInsDialog"
© www.soinside.com 2019 - 2024. All rights reserved.