У меня есть xlam с кодом VBA в нем, который предоставляет функции через ленточную группу под названием "Группа 1" и отдельный С# VSTO для Excel, который предоставляет функции через ленточную группу под названием "Группа 2".
Я хотел бы переместить некоторые функции из файла VBA и в С#.
a) Могу ли я "включить" VBA в С# так или иначе, так что мне не нужно идти и переносить все на С#? б) Могу ли я создать элементы/кнопки группы ленты в С# add, но вернуть код к файлу.xlam?
Я видел эту ссылку (http://msdn.microsoft.com/en-us/library/dd465290(VS.100).aspx), которая, похоже, говорит о публикации нескольких решений, которые я не думаю, m after - хотя будет ли этот метод работать для развертывания.xlam из приложения VSTO (и, по крайней мере, упростить развертывание пакета?
Могу ли я "включить" VBA в С# так или иначе, так что мне не нужно идти и переносить все на С#?
Простой ответ - нет, вы не можете.
Вам нужно будет переписать логику на С# (или VB.NET, если ваша надстройка "Group2" уже основана на VB.NET) в надстройке VSTO (предполагая, что она является надстройкой приложения). Не пугайтесь, но это должно быть весело и легко + вы будете изучать основы С# во время этого. Если вы хорошо разбираетесь в VBA, то это преимущество для вас, потому что вы, скорее всего, уже поймете объектную модель Excel.
подробнее см. http://msdn.microsoft.com/en-GB/library/cc668205.aspx
а затем vba4all.wordpress.com для некоторых дополнительных советов и примеров реальной жизни
Могу ли я создать элементы/кнопки группы ленты в С# add, но вернуть код к файлу.xlam?
Нет. Вы можете захотеть найти Редактор пользовательского интерфейса, если вы планируете добавлять или модифицировать ленту исключительно из С#.
Тогда вы можете создать свою пользовательскую ленту в Visual Studio, а затем скопировать и вставить XML в Редактор пользовательского интерфейса, чтобы добиться почти одинакового внешнего вида. Преимущество, которое вы получаете в Visual Studio, - это intelli-sense!
За хорошую прогулку по Редактору пользовательского интерфейса и создание ленты см. Ron De Bruin wesite