ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求教:如何标记用户快捷菜单(打勾)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-1-22 14:32 | 显示全部楼层 |阅读模式

目的是最终删除打勾的菜单项,请各位大师帮忙。

TA的精华主题

TA的得分主题

发表于 2005-1-22 15:42 | 显示全部楼层
新名词?用户快捷菜单?还打勾?是不是自定义的用户菜单,在自定义对话框中的是不是?能不能附个图上来?

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-22 17:25 | 显示全部楼层

目的是点击菜单“menu & n”后有如图效果,然后点击“Remove Menu”用FindContrls方法删除打勾菜单。请守柔老师指点。谢谢!!!

[此贴子已经被作者于2005-1-22 17:31:21编辑过]
gQDjKzcL.jpg
Ni75H3JC.jpg

TA的精华主题

TA的得分主题

发表于 2005-1-22 17:30 | 显示全部楼层
你上传的图片我看不到,能不能用BMP?谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-22 17:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-1-23 10:32 | 显示全部楼层

请参:(不知是否是楼主想要的结果?)

'* +++++++++++++++++++++++++++++ '* Created By 守柔(ShouRou)@ExcelHome 2005-1-23 10:27:40 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Private Sub Document_Close() On Error Resume Next Application.CommandBars("Text").Controls("New Menu").Delete '恢复原有菜单 End Sub '---------------------- Private Sub Document_Open() Dim i As Byte, Half As Byte, strName As String, NewButton As CommandBarPopup Dim MenuAdd As CommandBarButton On Error Resume Next Application.CommandBars("Text").Controls("New Menu").Delete '预防性删除 Half = Int(Application.CommandBars("Text").Controls.Count / 2) '中间位置 Set NewButton = Application.CommandBars("Text").Controls.Add(Type:=msoControlPopup, Before:=Half) With NewButton .Caption = "New Menu" '命令名称 .Visible = True '可见 End With For i = 1 To 4 strName = "Menu" & i Set MenuAdd = NewButton.Controls.Add(Type:=msoControlButton) With MenuAdd .Caption = strName .OnAction = "MySub" .State = msoButtonDown .Visible = True .Tag = strName End With Next End Sub '---------------------- Sub MySub() Dim ActionTag As String ActionTag = CommandBars.ActionControl.Tag MsgBox CommandBars.ActionControl.Tag With Application.CommandBars("Text").Controls("New Menu") If .Controls(ActionTag).State = msoButtonDown Then MsgBox "It's A Test!", vbOKOnly + vbInformation .Controls(ActionTag).State = msoButtonUp Else .Controls(ActionTag).State = msoButtonDown End If End With End Sub '---------------------- Sub ComReset() '重新设置右键菜单,彻底恢复默认设置 Application.CommandBars("Text").Reset End Sub '----------------------

求教:如何标记用户快捷菜单(打勾)

求教:如何标记用户快捷菜单(打勾)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-23 14:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢,我试一下。有问题再请教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-23 15:52 | 显示全部楼层

谢谢守柔老师的指点。 以下是从您的代码中得到的启发(ActionControl

Sub PreDel() CommandBars.ActionControl.FaceId = 220 '在New Menu 的子菜单中点击定义faceid End Sub

以下是删除faceid=220的菜单 Sub DelExcute() For Each mu In CommandBars("text").Controls("New Menu").Controls If mu.FaceId = 220 Then ss.Delete Next End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-23 15:55 | 显示全部楼层

还想请教:

If .Controls(ActionTag).State = msoButtonDown Then

为何意?谢谢!!!

TA的精华主题

TA的得分主题

发表于 2005-1-23 17:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

To henterwu:

State 属性应用于 CommandBarButton 对象的情形。

返回或设置命令栏按钮控件的外观。MsoButtonState 类型,可读写。

MsoButtonState 可以为下列 MsoButtonState 常量之一。

msoButtonDown

msoButtonMixed

msoButtonUp

expression.State

expression 必需。该表达式返回一个 CommandBarButton 对象。

.Controls(ActionTag).State = msoButtonDown(-1),表示命令按钮处于勾选状态;

.Controls(ActionTag).State =msoButtonUp(0),表示命令按钮处于未勾选状态

msoButtonMixed目前还未知是何状态.(测试时未感觉有何明显变化)

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 18:25 , Processed in 0.024855 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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