从C#调用具有用户定义类型的VBA宏?

从C#调用具有用户定义类型的VBA宏?,c#,automation,ms-word,C#,Automation,Ms Word,我有一个Word文档,其中包含一个VBA模块,其中包含用户定义的类型(public Type XXX)和一些将此类型作为参数的public sub。是否可以通过应用程序的Run()从C#调用这些sub 您好, 史蒂文我不知道你是否有足够的灵活性来做这件事,但下面是我如何解决这个问题的 创建另一个程序集(我称之为“xx.Common”) 在那里添加一些结构,使它们可见 从VBA和C#项目中引用该程序集 使用这些结构作为参数添加新的VBA子对象 您现在可以传入结构化的、用户定义的数据。如果你推广了这

我有一个Word文档,其中包含一个VBA模块,其中包含用户定义的类型(public Type XXX)和一些将此类型作为参数的public sub。是否可以通过应用程序的Run()从C#调用这些sub

您好,
史蒂文

我不知道你是否有足够的灵活性来做这件事,但下面是我如何解决这个问题的

  • 创建另一个程序集(我称之为“xx.Common”)
  • 在那里添加一些结构,使它们可见
  • 从VBA和C#项目中引用该程序集
  • 使用这些结构作为参数添加新的VBA子对象
  • 您现在可以传入结构化的、用户定义的数据。如果你推广了这个想法,你可以使用任何COM可见类型(即不仅仅是结构)。只要两个项目都引用了定义这些类型的程序集,您就可以了