Tag: atl

如何在C ++上为MS Excel实现一个简单的加载项

我需要在C ++中实现Excel 2010或更高版本的加载项的帮助,此加载项的唯一function是重命名当前的Excel工作表。 插件应该在名称为“Test Add-in”的function区上创build新的自定义选项卡,该选项卡包含名称为“我的function”的组,该组包含带有名称为“重命名当前表”的一些图片的大button。 点击button后,我应该显示下面的对话框: 用户可以input新名称,点击确定,之后,当前表单的名称将被更改。 我知道我需要使用#import指令获取对Office API的引用,使用ATL来包装COM对象, MFC或WTL来创build对话框,但我并不反对使用上述方法。

ATL COM为excel添加一个函数

我试图build立一个C ++类的ATL COM,并通过自动化添加到Excel。 我发现了一些指南,但我有很多问题,其中一个是我的DLL没有在自动化比较,如果我尝试添加它Excel的说有没有包含服务器或没有权限的问题。 有人能给我一个指导吗? 我正在使用Visual Studio 2012.谢谢。

在Excel工作表上直接使用ActiveX控件需要哪些要求?

Microsoft Office支持文章“ 添加或注册ActiveX控件 ”说: 重要提示:并非所有的ActiveX控件都可以直接在工作表上使用; 有些只能用于Microsoft Visual Basic for Applications(VBA)用户窗体。 当您使用这些控件时,如果您尝试将它们添加到工作表,Excel将显示消息无法插入对象 。 但是,我无法在任何地方find必要的 , 足以使控件直接在工作表上使用的要求。 我创build了一个新的C ++ / ATL项目,我添加了一个ATL控件,接受整个默认值。 编译,构build和注册控件后,它出现在Excel的“更多控件”列表中(在开发人员>插入> ActiveX控件>更多控件…下访问),但试图插入到工作表中时,可以看到“不能插入对象“错误。 我必须做出什么修改才能解决这个问题? 要么 Excel对ActiveX控件的要求在哪里有logging? 对于它的价值,我已经validation了由向导生成的控件可以正常工作(使用从Visual C ++ 2008示例包构build的ActiveX控件testing容器进行testing )。 此外,我知道ATL控件向导的“外观”选项卡的文档描述了“可插入”checkbox,如下所示: select此选项可让您的控件显示在Word和Excel等应用程序的“插入对象”对话框中。 您的控件可以通过任何支持embedded对象的应用程序通过此对话框插入。 但是,这个checkbox(只是简单地将“Insertable”子项添加到registry中)只会导致控件出现在Insert> Text> Object对话框中,为了避免疑惑,同样的错误产生的方式。 我试图插入一个工作(Forms 2.0)控件时试图插入我的控制对比当前正在比较Excel的执行path的痕迹。 关键区别似乎在于VBE7.dll加载types库(其中OLE / COM对象查看器能够从我的DLL正确加载 – 但Excel执行完所有相同的读取之后,它会在写出EXD之前中止)…我现在正在通过一些程序集挖空心思,希望我能弄明白 – 但是肯定有人为Excel创build了一个工作控件,并且知道我错过了什么可以使我免于这种痛苦?! Microsoft Windows 10 Pro v1511(10.0.10586.164)64位 Microsoft Excel 2016 MSO(16.0.4312.1000)64位 Microsoft Visual […]