Как запустить макрос Word VBA из надстройки C # VSTO - PullRequest
0 голосов
/ 22 февраля 2019

Я довольно новичок в кодировании на C # и VBA, так что терпите меня, я не знаю, какая информация необходима, а какая нет.Во всяком случае, я пытаюсь создать надстройку VSTO для Word с использованием C # в Visual Studio, которая по сути имеет несколько кнопок, которые запускают макросы VBA при нажатии.Я следил за поиском решений, но большинство из них применимы к Excel и, похоже, не совсем решают мою проблему. Ближайший вопрос, который я могу найти, это предыдущий вопрос ( Практическое руководство. Запуск существующих макросов Word VBA из C # Ribbon Addin ) но решение не помогло решить мою проблему.

Итак, у меня есть макрос в документе, который работает, как и ожидалось, если я запускаю его непосредственно из документа (для макрокода нет аргументов).У меня созданы кнопки, и при открытии экземпляра Word появляется лента надстройки.У меня также есть следующие методы в моем файле addin.cs:

    private void RunMacro(object oApp, object[] oRunArgs)
    {
        oApp.GetType().InvokeMember("Run",
            System.Reflection.BindingFlags.Default |
            System.Reflection.BindingFlags.InvokeMethod,
            null, oApp, oRunArgs);
    }

и следующий метод в качестве вызова onAction для одной кнопки (скажем Button1)

    public void OnButton1(Office.IRibbonControl control)
    {
        RunMacro(Globals.ThisAddIn.Application, new object[] {"Button1Macro"});
    }

Любая помощь будетс благодарностью.Спасибо

...