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

Я использую 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 (Отправитель объекта, EventArgs e) в 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.Workbook.Base.OnStartInis() в G: \ PROJECTS \ T100 \ T100 \ ThisWorkbook.Designer.cs: строка 57 в Microsoft.Office.Tools.Excel.WorkbookBase.Microsoft.Office.Tools.EntryPoint.FinishInitialization () в Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase (ExecutionPhases executePhases) в Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints ()

1 Ответ

1 голос
/ 23 марта 2012

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

<ribbon startFromScratch="true">

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

...