I have a menu which includes providing wrapper functions for many vba routines. The attached code is not a complete lisp function, but a portion of an mnl that automates creating "C:" style defuns for my vba routines. When I add a new vba sub, all I have to do is add the text name to an array.
The mnl uses (vl-vbaload) to load the dvb containing the subs. The RunMacro method is used rather than (vla-runmacro) because many of my subs make use of the PickfirstSelectionSet, which gets cleared when called from lisp. You can change the consctuctor to utilize vbarun if you wish. The main point here is to minimize maintenance so as not to have dozens of defun's.