我正在寻找一种在C ++中创建工作簿本地函数的方法(非托管)。 VBA不适合我的用例。不幸的是,这是我所知道的创建工作簿本地功能的唯一方法。 (我对VSTO并不十分熟悉,所以可能有一种方法,但我不能使用托管代码。)我知道如何创建函数作为XLL,我知道如何创建一个通过公开函数的自动化插件IDispatch接口。但是,这两者似乎只适用于全局功能。
有没有人知道这样做的方法?
答案 0 :(得分:2)
工作表!=工作簿
我不知道如何创建工作表 - 本地函数。
在VBA中公开函数需要一个标准模块(.bas)而不设置Option Private Module
选项,公开Public Function
- 该函数可以在包含它的工作簿的每个工作表中使用。 / p>
工作表本质上是一个类模块,并作为对象实例存在:因此Public Function
成员不能用作工作表函数。
功能是工作簿 - 本地,而非工作表 - 本地。
现在,这可能就是你的意思了,因为加载项方法被称为创建“全局”函数,可供所有工作簿使用。
正如@RubberDuck所暗示的那样,如果您正在扩展VBE本身,则通过VBIDE库创建代码不需要调整高程和安全设置。 This might help(这是加载项@RubberDuck的入口点,我正在努力)。这个加载项在VBE中编辑,删除和添加代码以实现生活,并且不需要调整宏安全设置。