unfortunately default arguments are not supported in Excel functions. This is because of the way Excel handles missing arguments. If you don't specify arguments when calling the function Excel will call the underlying function implementation with its own default values, which depend on the argument type. There is no way when registering a function to say what the default value should be. This is a limitation of the Excel XLL SDK.

If you use the 'var' type a missing value will be passed as None, which you can check for and substitute with your default value. This isn't as convenient as python's keyword argument defaults but it should be workable.

This has come up before. I'll have a think about whether or not there's something that come be done in PyXLL to work around this limitation and somehow make it 'just work' - but for now I'm afraid you're stuck with the above suggestion.