我需要使用 VBA 从 Excel 2010 中的右键单击菜单中删除“粘贴选项”。
我能够删除我不需要但无法摆脱“粘贴选项”及其图标儿童。我还从 Excel 文件->选项->高级->剪切复制和粘贴中删除了“粘贴选项”,但这对右键单击“粘贴选项”没有影响。我已经广泛搜索了解决方案,但在网络上的任何地方都找不到对此的参考。
我还检查了 VBA“Locals”窗口中的 CommandBar 对象并查看了所有属性,但看不到“粘贴选项”所在的位置。
先感谢您
我需要使用 VBA 从 Excel 2010 中的右键单击菜单中删除“粘贴选项”。
我能够删除我不需要但无法摆脱“粘贴选项”及其图标儿童。我还从 Excel 文件->选项->高级->剪切复制和粘贴中删除了“粘贴选项”,但这对右键单击“粘贴选项”没有影响。我已经广泛搜索了解决方案,但在网络上的任何地方都找不到对此的参考。
我还检查了 VBA“Locals”窗口中的 CommandBar 对象并查看了所有属性,但看不到“粘贴选项”所在的位置。
先感谢您
使用 customui 编辑器,您可以将其添加到 customui14 部分
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<commands>
<command idMso="Paste" enabled="false"/>
<command idMso="PasteGallery" enabled="false"/>
<command idMso="PasteGalleryMini" enabled="false"/>
<command idMso="PasteMenu" enabled="false"/>
<command idMso="PasteLink" enabled="false"/>
<command idMso="PasteAsHyperlink" enabled="false"/>
<command idMso="PasteSpecialDialog" enabled="false"/>
<command idMso="PasteFormatting" enabled="false"/>
<command idMso="PasteFormulas" enabled="false"/>
<command idMso="PasteValues" enabled="false"/>
<command idMso="PasteFormulasAndNumberFormatting" enabled="false"/>
<command idMso="PasteTranspose" enabled="false"/>
<command idMso="PastePictureLink" enabled="false"/>
</commands>
</customUI>
如果要隐藏控件,则必须为要操作的每个菜单执行此操作。例如单元格菜单
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<contextMenus>
<contextMenu idMso="ContextMenuCell">
<gallery idMso="PasteGalleryMini" visible="false"/>
</contextMenu>
</contextMenus>
</customUI>
使用 for 循环,这是我的上下文菜单的ComabdBarControl 元素的 ID 和标题:
身份证标题
21 切割(&T)
19(&复制)
22&粘贴
21437 粘贴&特殊...
3624&粘贴表
25536 智能查找
32713 数据类型(&type)
33409 翻译
295 插入单元(&E)...
27690 插入单元(&E)...
292(&D)删除...
3125 清除内容(&N)
24508&快速分析
31623 迷你图(&A)
31402 过滤器(&E)
31435 分类(&ort)
2031 插入评论&评论
1592 删除评论(&C)
1593 显示/隐藏评论(&O)
855 格式化单元格(&F)...
1966 从下拉列表中选择...
1614(&显示音域)
13380 定义名称&名称...
1576...
1577 编辑超链接(&H)...
1015(&O) 打开超链接(&O)
3626 删除超链接(&E)
11299 展开(&X) 详细
31595 附加动作(&A)
178全屏
22577 其他操作(&A)
所以看起来如果你去掉“粘贴”和“特殊粘贴”,那么所有的粘贴选项都会消失。不完全确定“粘贴表”指的是什么。
对于 Application.CommandBars("Cell").Controls 中的每个 menuItem
如果 menuItem.ID = 22 或 menuItem.ID = 21437 那么 menuItem.Delete
下一个