0

C# でビジュアル スタジオ マクロを作成したいと考えています。私が今していることは、クラス ライブラリでマクロを作成し、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 マクロが使用する参照を追加したことに注意してください。

ここに画像の説明を入力


編集

現在デバッグ中のドキュメントを変更しようとしているため、例外が発生する可能性があります。Visual Studio ドキュメント (デバッグされていないドキュメント) の 2 番目のインスタンスの dte を取得できれば、この問題を解決できる可能性があります。

4

2 に答える 2

0

このSOの記事を見たことがありますか:単純なC#DLL-Excel、Access、VBA、VB6からどのように呼び出すのですか?

2つの答え、特に2番目の答えは、C#でのvbaスクリプトの呼び出し/テストの懸念に主に対処しているようです。ひいては、dllを参照し、コンソールアプリケーションでメッセージボックスまたは同様の手段を使用して、エラーメッセージ/結果などを出力できる場合があります。

〜JOL

于 2012-07-25T19:07:19.053 に答える
0

この回答により、あらゆる種類のアプリケーションで、あらゆるプログラミング言語でビジュアル スタジオ マクロを作成できるようになります。リンクにあるideクラスを使用してwpfアプリケーションで作成しています:

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

于 2012-07-29T21:26:15.803 に答える