0

我使用 VS 2010 创建 Excel 2007 xltx 模板。我想删除所有 Excel 命令栏并禁用向他们显示用户并使用我的控件添加自己的命令栏。在某些控件中,我想调用将在此模板中的 VBA 函数。我认为这个操作我必须在:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
        }

        private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
        {
        }

有什么建议吗?谢谢。我使用 VS 2010 创建 Excel 2007 xltx 模板。我想删除所有 Excel 命令栏并禁用向他们显示用户并使用我的控件添加自己的命令栏。在某些控件中,我想调用将在此模板中的 VBA 函数。我认为这个操作我必须在:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
        }

        private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
        {
        }

有什么建议吗?谢谢。

UPD1: 我尝试:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
            foreach (CommandBar bar in this.Application.ThisWorkbook.CommandBars)
            {
                bar.Visible = false;
                //or  bar.Delete();
            }            
        }

但我收到错误:System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel._Application.get_ThisWorkbook() at T100.ThisWorkbook.ThisWorkbook_Startup(Object sender, EventArgs e) in G :\PROJECTS\T100\T100\ThisWorkbook.cs:第 20 行,位于 Microsoft.Office.Tools.Excel.WorkbookImpl.OnStartup(),位于 Microsoft.Office.Tools.Excel.WorkbookImpl.WorkbookExtensionImpl.Microsoft.Office.Tools.EntryPoint.OnStartup () 在 Microsoft.Office.Tools.Excel.WorkbookBase.OnStartup() 在 T100.ThisWorkbook.FinishInitialization() 在 G:\PROJECTS\T100\T100\ThisWorkbook.Designer.cs:Microsoft.Office.Tools.Excel 的第 57 行.WorkbookBase.Microsoft.Office.Tools.EntryPoint.FinishInitialization() 在 Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization。Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints() 的 ExecutePhase(ExecutionPhases executionPhases)

4

1 回答 1

1

将新功能区添加到您的项目并在您的功能区 xml 中进行设置

<ribbon startFromScratch="true">

如果您使用功能区设计器,您可以在属性窗口中找到 startFromScratch 属性,将其设置为“true”。

于 2012-03-23T17:13:41.710 回答