ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5489|回复: 10

[求助] WordVBA怎么执行自带菜单功能?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-27 20:50 | 显示全部楼层 |阅读模式
貌似看到两种方法:
  1. Application.CommandBars("Picture").Controls("压缩图片(&C)...").Execute
复制代码
  1. Application.CommandBars("Picture").Controls.Items(index).Execute
复制代码
现在的问题是,怎么才能找到CommandBars的ID,除了"Pictures"还有哪些?

Controls里面的ID又要怎么找。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-27 22:16 | 显示全部楼层
word 2007 我想屏蔽,右键菜单中的一些按钮。
  1. '7685   查阅(&K)...
  2. '30475  同义词(&Y)
  3. '31432  翻译(&A)
  4. '14453  英语助手(&E)
复制代码
不知道怎么写代码

TA的精华主题

TA的得分主题

发表于 2013-5-27 23:08 | 显示全部楼层
在03中可以这样做:
Sub 打印出所有菜单名称()
    For i = 1 To Application.CommandBars.Count
        Selection.InsertAfter Application.CommandBars(i).Name & Chr(13)
        For j = 1 To Application.CommandBars(i).Controls.Count
            Selection.InsertAfter vbTab & Application.CommandBars(i).Controls(j).ID & Application.CommandBars(i).Controls(j).Caption & Chr(13)
        Next
    Next
End Sub
以删除查阅为例:
Sub 删查阅()
Application.CommandBars("text").Controls("查阅(&K)...").Delete
End Sub
你可以试试07版的是否通用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-28 08:20 | 显示全部楼层
zhanglei1371 发表于 2013-5-27 23:08
在03中可以这样做:
Sub 打印出所有菜单名称()
    For i = 1 To Application.CommandBars.Count

谢谢你,测试了是通用的。
1.我屏蔽了以上4个菜单项之后,“翻译(&A)”的下一级菜单“翻译(&A)...”还是留下来了。
2.怎么恢复菜单呢?
3.怎么执行这些菜单项呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-28 10:04 | 显示全部楼层
zhanglei1371 发表于 2013-5-27 23:08
在03中可以这样做:
Sub 打印出所有菜单名称()
    For i = 1 To Application.CommandBars.Count

我想执行 插入-表格-插入表格(&I)...   TableInsertDialogWord
和 插入-链接-交叉引用                    InsertCrossReference或者CrossReferenceInsert

TA的精华主题

TA的得分主题

发表于 2013-5-28 10:05 | 显示全部楼层
恢复菜单:
Application.CommandBars("text").Reset

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-28 10:22 | 显示全部楼层
本帖最后由 loquat 于 2013-5-28 10:29 编辑
zhanglei1371 发表于 2013-5-28 10:05
恢复菜单:
Application.CommandBars("text").Reset

插入表格和交叉引用找到方法了
Dialogs.Show方法
'wdDialogTableInsertTable        129 插入表格(&I)...
'wdDialogInsertCrossReference 367 插入交叉引用
不过对其他方法仍然有兴趣

TA的精华主题

TA的得分主题

发表于 2013-5-28 16:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhanglei1371 发表于 2013-5-27 23:08
在03中可以这样做:
Sub 打印出所有菜单名称()
    For i = 1 To Application.CommandBars.Count

请教一下,代码所生成的某些控件名称中含有两个像“回”字的符号,如Selection.InsertAfter Application.CommandBars("Tables and Borders").Controls(1).Caption,显示结果是“绘制表格回回(&W)”,把此结果直接拷进VBA中两个回字就会消失,但执行Application.CommandBars("Tables and Borders").Controls("绘制表格(&W)").Execute却是出错了,如何解决呢?

TA的精华主题

TA的得分主题

发表于 2014-7-5 23:04 | 显示全部楼层
Application.CommandBars.FindControl(ID:=15675).Execute '加密文档
Application.CommandBars.FindControl(ID:=21974).Execute '加密文档
Application.CommandBars.FindControl(ID:=22586).Execute '打印预览和??打印
Application.CommandBars.FindControl(ID:=364).Execute '设置??打印区域
Application.CommandBars.FindControl(ID:=247).Execute '页面设置
Application.CommandBars.FindControl(ID:=748).Execute '另存为
Application.CommandBars.FindControl(ID:=108).Execute '.. 格式刷
Application.CommandBars.FindControl(ID:=178).Execute '全屏显示
Application.CommandBars.FindControl(ID:=893).Execute '.. 保护??工作表
Application.CommandBars.FindControl(ID:=894).Execute '.. 保护​​工作簿
Application.CommandBars.FindControl(ID:=485).Execute '切换网格
Application.CommandBars.FindControl(ID:=22398).Execute '全屏打印预览
Application.CommandBars.FindControl(ID:=128).Execute '撤消
Application.CommandBars.FindControl(ID:=20862).Execute '升序
Application.CommandBars.FindControl(ID:=20863).Execute '降序

TA的精华主题

TA的得分主题

发表于 2015-12-13 14:21 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 01:55 , Processed in 0.029156 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表