Взаимодействие с макросами Word из приложения - C#

Узнай цену своей работы

Формулировка задачи:

У меня макросы с word есть мне нужно ее прикрутить к C#. Как это сделать?

Решение задачи: «Взаимодействие с макросами Word из приложения»

textual
Листинг программы
using System;
using Word = Microsoft.Office.Interop.Word;
using VBIDE = Microsoft.Vbe.Interop;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var wordApp = new Word.Application();
            wordApp.Documents.Add("C:\\1.docm");
            var doc = wordApp.Documents[1];
            VBIDE.VBComponent oModule = doc.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
 
            string sCode =
                "public sub VBAMacro()\r\n" +
                "   msgbox \"VBA Macro called\"\r\n" +
                "end sub";
            // Add the VBA macro to the new code module.
            oModule.CodeModule.AddFromString(sCode);
            RunMacro(wordApp, new Object[]{"VBAMacro"});
            wordApp.Visible = true;
        }
        public static void RunMacro(object oApp, object[] oRunArgs)
        {
            oApp.GetType().InvokeMember("Run",
                System.Reflection.BindingFlags.Default |
                System.Reflection.BindingFlags.InvokeMethod,
                null, oApp, oRunArgs);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5