Ваш код VSTO имеет объект Microsoft.Office.Interop.Word.Application
. Скажем, вы храните эту ссылку в переменной с именем hostApp
, вы можете сделать это:
hostApp.Run("TableMacro")
Для этого требуется, чтобы файл .dotm был «активным» документом. Если документ не активен и у вас есть ссылка на него (скажем, theDocument
), я думаю это может сработать (не проверено):
hostApp.Run(theDocument.Name & "!TableMacro")
Объект, который использует VB.NET, тот же, что и VBA, поэтому, если Application.Run "MyMacros!TableMacro"
работает в VBA, он будет работать в VB.NET. Сначала я попытался бы разобраться в VBA, чтобы получить правильный синтаксис - вы получаете мгновенную обратную связь, а не сборку и запуск хоста, загрузку надстройки и тестирование с помощью VSTO.