Как удалить все панели команд в шаблоне Excel 2007.xltx и добавить собственную панель команд с собственными элементами управления?

Я использую 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): Исключение из HRESULT: 0x800A03EC в Microsoft.Office.Interop.Excel._Application.get_ThisWorkbook() в T100.ThisWorkbook.ThisWorkbook_Startup в объекте отправителя события (Отправитель объекта): \ PROJECTS \ T100 \ T100 \ ThisWorkbook.cs: строка 20 в Microsoft.Office.Tools.Excel.WorkbookImpl.OnStartup () в Microsoft.Office.Tools.Excel.WorkbookImpl.WorkbookExtensionImpl.Microsoft.Office.Tools.Onup.Point () в Microsoft.Office.Tools.Excel.WorkbookBase.OnStartup () в T100.ThisWorkbook.FinishInitialization () в G:\PROJECTS\T100\T100\ThisWorkbook.Designer.cs: строка 57 в Microsoft.Office.Tools.Excel.WorkbookBase.Microsoft.Office..VisualStudio.Tools.Office.Runtime.Interop.IExecuteCust omization2.ExecuteEntryPoints ()

1 ответ

Решение

Добавьте новую ленту в свой проект и установите ее в своей ленте xml

<ribbon startFromScratch="true">

Если вы используете дизайнер ленты, вы можете найти свойство startFromScratch в вашем окне свойств, установив для него значение "true".

Другие вопросы по тегам