我使用 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)