For your second request : If the OPTIONAL keyword is specified, all parameters after the keywords are optional. http://gambaswiki.org/wiki/lang/methoddecl so Public Sub MyFunction(Needed as Type, Needed2 as Type, Optional Opt as Type, Opt2 as Type = Value, etc...) You just need one occurrence of the optional KeyWord in the declaration line