我有這個簡單的功能爲excel函數應該是靜態的,而COM對象方法不應該:重複「實現」真的必要?
public double MYSUM(double x, double y)
{
return x + y;
}
在Excel-DNA用它我可以
- 聲明它
static
,並通過[ExcelFunction(Description = "blah")]
這將最終導致Excel函數preceed它。 - 非聲明它
static
並聲明[ComVisible(true)]
和[ClassInterface(ClassInterfaceType.AutoDual)]
含有它的類,這將最終導致COM類可調用在VBA
由於以前的情況下,互相排斥的static
/非static
要求,我的結論我無法編碼一個時間(即在一個地方)MYSUM
並實現使其可用作Excel函數以及COM對象的方法。我錯了嗎 ?
(當然,我可以做兩個合適的聲明都包裹了獨特double underlyingMYSUM(double, double)
做的工作,但我還是不得不在兩個地方寫我的函數VBA和Excel曝光。)