0

我想在 C# 中创建 Visual Studio 宏。我现在要做的是在类库中创建宏,然后从 vba 执行它们。问题是我无法调试宏,因为我无法从 vba 进入 dll。

无论如何,我想在控制台应用程序中创建用于调试目的的宏。一旦我知道它有效,我将把它放在 dll 上。

到目前为止,这是我的代码:

class Program
{        
    static void Main( string[] args )
    {            
        EnvDTE80.DTE2 MyDte;
        MyDte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject( "VisualStudio.DTE.10.0" );
        Console.WriteLine( "The Edition is " + MyDte.Edition );

        Console.ReadLine( );

        Console.Write( MyDte.ActiveDocument.Selection.Text );


        Console.Read( );                                                                           
    }

}

注意我添加了 Visual Studio 宏使用的引用:

在此处输入图像描述


编辑

也许我得到了一个异常,因为我正在尝试修改我当前正在调试的文档。如果我能设法获得视觉工作室文档的第二个实例(未调试的文档)的 dte,我也许能够解决这个问题。

4

2 回答 2

0

您是否看过这篇 SO 文章:一个简单的 C# DLL - 如何从 Excel、Access、VBA、VB6 调用它?

这两个答案,尤其是第二个,似乎在很大程度上解决了在 C# 中调用/测试 vba 脚本的问题。通过扩展,您可以引用 dll 并在控制台应用程序中使用消息框或类似方式来打印错误消息/结果等。

~乔尔

于 2012-07-25T19:07:19.053 回答
0

这个答案应该使您能够在任何类型的应用程序中以任何编程语言创建 Visual Studio 宏。我正在使用链接上的 ide 类在 wpf 应用程序中创建一个:

https://stackoverflow.com/a/11713078/637142

于 2012-07-29T21:26:15.803 回答