2017-01-18 6 views

答えて

0

イントロスペクションを使用して呼び出しメソッドを調べることができます。この場合、COMシステムを介して呼び出されているため、これが原産地を隠す可能性があるため、これが機能するかどうかはわかりません。ここでは、とにかくそれを試みることができる方法は次のとおりです。

How do I get the calling method name and type using reflection?

0

あなたはVBAコードとC#のコードの両方を管理している場合、あなたは、単に呼び出しの「名前」として記録されます追加のパラメータを追加することができますCOMオブジェクト。それを呼び出す各項目でそのパラメータをカスタマイズできます。

たとえば、 C#

[comvisible(true)] 
public void doStuff(string callingName, object otherarg, object anotherarg) 
{ 
    Console.writeline("Called by " + callingName); 
    //blah blah blah 
} 

VBA 1

set tmp = ReferenceToCSharpComObject 
call tmp.doStuff("Example VBA Script", null, null) 

VBA 2

set tmp = ReferenceToCSharpComObject 
call tmp.doStuff("Second VBA Example", null, null) 
関連する問題