我正试图在Excel中单击鼠标右键时停用某些选项。
其中很多都可以工作,但“新注解”,“新注解”和“格式化单元格......”不符合格式:Application.CommandBars("cell").Controls("New Comment").Enabled = False
。
我正在寻找获取这些命令的语法,但也有一种方法可以使用控件ID(我认为,对于“New Comment”,是ID01589)来做同样的事情。找到很多这些右键单击选项的ID似乎比使用标签更容易。
除了找到语法为上述三个项目的右键单击菜单我想知道如何做到这一点的项目在其他菜单即。教我如何钓鱼,而不是给我一条鱼。
2条答案
按热度按时间c7rzv4ha1#
我在这里的知识来自于多年来对许多项目的反复试验和错误。因此,我并不主张有确切的知识。然而,这个过程,如果遵循,将得到你的鱼,我会教你如何捕鱼,因为我知道它最好的!
有两个单独的方法需要这个...“菜单项”不是以相同的方式添加的。我相信微软在引入“ribbon”和
RibbonX
时改变了他们的添加方式。首先,格式化单元格,这是添加的'老办法':要获取“单元格”菜单上的菜单项(
CommandBarControls
)的ID,您可以使用以下命令:从这里你会看到“格式化单元格”的ID是855,所以你可以使用
Application.CommandBars("Cell").FindControl(ID:=855, Recursive:=True).Enabled = False
禁用它(当然,True可以启用它)。接下来,添加“新方式”的新注解和新注解:
这些都是使用RibbonX添加的,你将需要一个RibbonX编辑器应用程序来帮助你编辑它...有几个RibbonX编辑器在那里,我建议Office RibbonX Editor(我与作者没有联系),你需要阅读如何使用它。一旦你掌握了如何添加/编辑RibbonX的窍门,你需要知道New Comment的
idMso
是NewThreadedComment
,New Note的idMso
是NewCommentLegacy
,所以你需要的RibbonX代码是:计算
idMso
值的过程并不简单。然而,我在这里使用的方法(以及以前使用的方法)。有时成功,有时不成功)是:在Excel中,转到:文件>选项>自定义功能区,在“选择命令自”下选择“所有命令”.在这一点上,然后,你必须工作,在(很长)下拉菜单中的命令涉及到你想要的'菜单项'。在您的情况下,滚动到插入注解(在我的设备上有两个,它是第一个),并将鼠标悬停在它上面,您将在工具提示的末尾看到括号中的
NewThreadedComment
。这是新注解的idMso
(为什么微软在一个地方使用插入注解,在另一个地方使用新注解,我不知道.这是“乐趣和游戏”的一部分,微软称之为每一个项目,没有明确的方法来做到这一点,我知道,你需要在下拉菜单中寻找,直到你找到你需要的命令);然后滚动到新笔记,再次悬停鼠标找到idMso
是NewCommentLegacy
。然后在RibbonX中使用它们,如上所述,以禁用相关的菜单项。要了解更多关于RibbonX的信息,包括如何使用
getEnabled
动态禁用/启用(如果您需要的话),请参阅Microsoft docs。2ledvvac2#
对于大多数单元格控件,我建议枚举单元格菜单项id和返回控件的函数。
请注意,这些控件是隐藏的,无法取消隐藏:
正如JohnM指出的,你需要编辑功能区来禁用菜单项。我使用Custom UI Editor插入xml来禁用新注解和新注解菜单项。