本地(工作簿特定)function,不使用VBA或VSTO

我正在寻找一种方法来在C ++(非托pipe)中创build工作簿本地函数。 VBA不适合我的用例。 不幸的是,这是我知道创build工作簿本地函数的唯一途径。 (我不是很熟悉VSTO,所以可能有一种方法,但我不能使用托pipe代码。)我知道如何创build函数作为XLL,我知道如何创build一个自动插件,通过暴露functionIDispatch接口。 但是,这两者似乎只针对全球function。

有没有人知道一个办法做到这一点?

工作表!=工作簿

我不知道有什么办法来创build工作表本地function。

在VBA中公开函数,你需要一个没有Option Private Module选项的标准模块(.bas), Public Function – 该函数在包含它的工作簿的每个工作表中都是可用的。

工作表本质上是一个类模块,并且作为对象实例存在:其Public Function成员因此不能用作工作表函数。

函数是工作簿本地 ,而不是工作表本地


现在,无论如何,这可能就是您的意思,因为插件方法被称为创build“全局”函数,所有的工作簿都可以使用它。

正如@RubberDuck暗示的那样,通过VBIDE库创build代码不需要提升和安全设置,如果你扩展VBE本身。 这可能有帮助 (这是加载项@RubberDuck的入口点,我正在工作)。 这个插件编辑,删除和添加代码在VBE的生活,并不需要调整macros安全设置。