这种情况一般用C/C++比较好,也可以考虑让你的主程序支持VBA。其实就是允许用开开发插件。你要确定出用户插件的接口形式、主程序查询插件的机制。比如:你约定用户进行二次开发时必须有至少提供三个dll函数,1)初始化函数;2)执行函数;3)反初始化函数。每个函数的参数传递方式、返回结果一定要明确。由于用户将来完成什么功能不清楚,所以函数的形式是必须非常通用化的、抽象的。至于主程序查询插件的机制,最简单的就是用户DLL必须放置在主程序所在文件夹,复杂点的话,要考虑注册机制,从注册表中查询用户的DLL,并进行有效性判断。
什么语言都能实现,VB最简单,C++比较的麻烦,需要掌握的东西比较多