Поэтому я сделал следующие шаги:
button1
просто увеличит размер шрифта, а button2
будет использовать код VSTO C# для инициализации нескольких классов, обработки данных и печати вывода на лист. Все это работает при запуске Excel из Visual Studio.Это известное ограничение или я делаю что-то не так?
Моя цель — использовать надстройку VSTO для создания функционального листа (добавление форматирования, добавление кнопок и т. д.), который впоследствии любой сможет открыть без фактической установки надстройки. Теперь я сомневаюсь, что это вообще возможно.
Действия для кнопок являются частью надстройки, а не листа.
Когда вы добавляете кнопку, это меняет сам лист. Когда вы добавляете к кнопке обработчик событий, который вызывает код в надстройке, а не на листе.
Вам нужна надстройка, чтобы искать кнопки при открытии документа, а затем прикреплять к этому моменту обработчики событий.
Да, но тогда вам понадобятся кнопки для запуска макроса VBA, а не кода C# VSTO. Если вы хотите использовать VSTO, возможно, вы захотите использовать настройки на уровне документа Learn.microsoft.com/en-us/previous-versions/visualstudio/…. Если вы не настроены на технологию, я бы посоветовал рассмотреть Office.js.
Я, конечно, не ограничиваюсь VSTO. Мне действительно все равно, что я использую. Все, что я хочу, это (пусть это будет использование Python, C++, C#,...) создать книгу с двумя листами и несколькими кнопками формы (или кнопками ActiveX, если они работают) на этих листах. Я бы предпочел, чтобы пользователю не нужно было ничего устанавливать, но я также готов принять простую установку, например. Установка ВСТО. Похоже, вы много знаете об этой теме. Могу я спросить, что бы вы порекомендовали? Чего я не хочу, так это использовать вкладку разработчика Excel и писать там макрос VBA — я считаю это ужасным.
В любом случае, я принимаю ваш ответ, потому что он отвечает на мою первоначальную проблему.
Я бы определенно рекомендовал Office.js вместо VSTO, если он поддерживает нужные вам интерактивные функции. Вы также можете в первую очередь рассмотреть возможность использования C# и OpenXML SDK для добавления кнопок. Это позволяет редактировать документ напрямую, не взаимодействуя с экземпляром Excel.
Хорошо, без надстройки другие пользователи не смогут использовать кнопки. Верно? Есть ли другой способ создать книгу со всеми событиями/кнопками, которая не требует от пользователя ничего устанавливать? Кроме написания кода VBA Marco?