在控制台应用程序中创建visual studio宏

时间:2012-07-25 16:55:04

标签: c# envdte visual-studio-macros

我想在c#中创建visual studio宏。我现在在做什么是在类库中创建宏然后从vba执行它们。问题是我无法调试宏,因为我无法从vba步入dll。

无论如何我想在控制台应用程序中创建用于debuging purpuses的宏。一旦我知道它的工作原理,我就把它放在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宏使用的引用:

enter image description here


修改

也许我得到一个例外,因为我正在尝试修改我正在调试的文档。如果我能够设法得到第二个visual studio文档的实例(文档没有被删除),我可以解决这个问题。

2 个答案:

答案 0 :(得分:0)

您是否看过这篇SO文章:A Simple C# DLL - how do I call it from Excel, Access, VBA, VB6?

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

〜JOL

答案 1 :(得分:0)

This answer应该允许您在任何类型的应用程序中以任何编程语言创建可视化工作室宏。我正在使用位于链接上的ide类在wpf应用程序中创建一个:

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