我需要使用 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 下一个