首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与OleObjects/嵌入式控件交互VSTO,VBA转换

与OleObjects/嵌入式控件交互VSTO,VBA转换
EN

Stack Overflow用户
提问于 2014-03-12 21:48:58
回答 1查看 661关注 0票数 0

我正在将一个旧的VBA项目转换为一个C# VSTO。我知道很多代码必须跳出窗口,但我希望仍然使用已嵌入到工作表中的布局和对象。对象的示例包括控制按钮、标签、图像等。

当我在创建新项目时选择文档作为模板时,所有这些都会很好地保持。我遇到了一个问题,因为我似乎无法选择或引用任何这些对象。例如,在工作表的中间有一个按钮。如果我用VS2012打开工作表,我可以看到按钮。我甚至可以“高亮”它,但不能选择它。如果我右键单击按钮来拉出属性,它将打开工作表的属性,而不是按钮。我不能调整它们的大小,也不能移动它们(不是我想要的)。

我似乎也不能在代码中引用它们( ...Sheet1.ControlButton1......Sheet1.OleObject(n)...永远不会引用任何东西)。如果我直接从解决方案文件夹打开工作簿,并单击相同的控件,我可以看到属性,而Excel中的公式条将读取=EMBED("Forms.CommandButton.1","")

我也无法遍历所有的OleObjects,只显示它们的名字。很明显,无论收藏在哪里,它们都在存储,我找不到它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 22:12:10

尝试Workbook.Shapes集合

按以下评论编辑。这工作: Globals.ThisWorkbook.Worksheets(1).OLEObjects("CommandButton1");

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22364614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档