Необходимо добавить новый рабочий лист в рабочую книгу с помощью надстройки 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#?