Excel function with arbitrary params

Dec 20, 2011 at 6:40 PM

Hi Govert,

I'd like to create a function that takes arbitrary amount of params of any kind, Is this possible?

Like Foo(A1,B1:B3,C1:E:1)

I tried

[ExcelFunction(Description = "", Category = "SeoTools")]
public static string Foo([ExcelArgument(Description = "")]params object[] vector)
{
    return "foo";
}

But it seems not to work.

Best regards
/Niels

Coordinator
Dec 21, 2011 at 3:22 PM

Hi Niels,

Excel-DNA does not currently have automatic processing of params arrays.

However, you can implement in your function exactly the behaviour Excel-DNA might in future do automatically: You create the function with 255 (or however many) parameters of type object, and then check each of the for type ExcelMissing to see if a value was passed in or not.

The Excel C API does not allow functions to behave in the function wizard exactly as they do in VBA, but Excel-DNA already allows you to fully implement any signature that the C API supports (apart from async functions in Excel 2010). For now you just have to do the extra parameter check and remapping in your own wrapper function.

-Govert 

Dec 22, 2011 at 6:48 AM

Thanks for your answer Govert!

Do you have any roadmap/development plan for Excel-DNA?

/Niels

Coordinator
Dec 22, 2011 at 7:39 AM

I have a long todo list :-)

Better asynchronous support is likely to be the next big theme, when I get some time to focus on further development.

-Govert