Visual c# VSTO Excel Переименование свойства кодового имени листа - PullRequest
1 голос
/ 25 марта 2020

Необходимо добавить новый рабочий лист в рабочую книгу с помощью надстройки Excel (C# VSTO). На самих листах будет содержаться предупреждающее сообщение, в котором будет указано что-то вроде: If you can see this sheet you don't have the add-in installed.

Лист будет скрыт автоматически, если надстройка установлена. Проблема в том, что в SharePoint есть 1k + книг - отсюда мой подход к добавлению и скрытие рабочих листов при их открытии пользователями.

Я пытаюсь добавить рабочий лист, но затем изменить CodeName.

Это возможно в VBA с кодом:

ThisWorkbook.VBProject.VBComponents(Wks.CodeName).Name = strSheetName

Визуальный C# идет некоторым путем к подсказке, это может быть разрешено с помощью using Microsoft.Vbe.Interop; и недокументированное _CodeName (Зарезервировано для внутреннего использования.)

Вот что я пробовал:

Excel.Worksheet Wks = Wkb.Sheets["CRM365"];

string strSheetName = "WksWarnings"

Wkb.VBProject.VBComponents(Wks._CodeName).Name = strSheetName;

Конечно, это не работает. Главным образом потому, что VBComponents не подлежит вызову. Вся документация, которую я нашел до сих пор, гласит, что свойство CodeName доступно только для чтения - что не всегда верно, см. Пример VBA выше.

Прежде чем я получу ответы "зачем беспокоиться, et c .. "Я из школы мысли, что компьютеры не говорят нам, что делать - мы говорим им. (Пока они не поднимутся и не станут нашими повелителями), также на всех других листах будут определены кодовые имена.

Это тот случай, когда Visual Basi c затмевает Visual C#?

...