ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

提取office程序中的按钮图标及其ID

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-9-16 10:01 | 显示全部楼层 |阅读模式

在word中运行以下代码:

Dim sid As Integer Sub face()

With Application.CommandBars("Standard").Controls(1) sid = .FaceId For i = 1 To 100 .FaceId = i .CopyFace Selection.TypeText Text:=i Selection.Paste Next i .FaceId = sid End With End Sub

想看更多的图标及其Id,只要将for 语句中的100改大一点的数

如图:

提取office程序中的按钮图标及其ID

提取office程序中的按钮图标及其ID

TA的精华主题

TA的得分主题

发表于 2004-9-16 11:04 | 显示全部楼层

MItQrU9H.zip (15.96 KB, 下载次数: 681)

不错,鼓励一下。

如果能更进一步,请参此附件程序。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-9-23 08:56 | 显示全部楼层

这是最近修改后的代码:

Public i, si, ei As Integer Dim mybar As CommandBar Dim mybutton1 As CommandBarButton

Sub sAdd() Application.ScreenUpdating = False On Error Resume Next sDel Set mybar = Application.CommandBars.Add(Name:="我的工具栏", Position:=msoBarFloating) '创建我的工具栏 With mybar .Visible = False '设置我的工具栏不可见 .Enabled = True '设置我的工具栏可用 .Left = 200 .Top = 150

For i = si To ei Set mybutton1 = Application.CommandBars("我的工具栏").Controls.Add(Type:=msoControlButton, Temporary:=True) '在工具栏中新建按钮 With mybutton1 .FaceId = i '按钮图标ID .Caption = "FaceID=" & i .Style = msoButtonIcon .OnAction = "useinsent" .Visible = True End With Next i .Width = 489 .Visible = True '设置我的工具栏可见 End With Application.ScreenUpdating = True End Sub Sub sDel() On Error Resume Next Application.CommandBars("我的工具栏").Delete End Sub Sub sDelAll() On Error Resume Next Application.CommandBars("图标工具启动").Delete Application.CommandBars("我的工具栏").Delete

End Sub Sub useinsent() On Error Resume Next Application.CommandBars.ActionControl.CopyFace If Application.Name = "Microsoft Word" Then Selection.GoToPrevious what:=wdGoToEndnote '定位插入点为当前光标处 Selection.Paste Else activesheet.Paste End If End Sub

Sub myAdd() si = 1 ei = 200 On Error Resume Next Application.CommandBars("图标工具启动").Delete Application.CommandBars("我的工具栏").Delete

Set mybar = Application.CommandBars.Add(Name:="图标工具启动", Position:=msoBarTop) '创建我的工具栏 With mybar .Visible = True '设置我的工具栏可见 .Enabled = True '设置我的工具栏可用

End With Set mybutton1 = Application.CommandBars("图标工具启动").Controls.Add(Type:=msoControlButton, Temporary:=True) '在工具栏中新建按钮 With mybutton1 .FaceId = 178 '按钮图标ID .Caption = "显示图标待选框" .Style = msoButtonIcon .OnAction = "sAdd" .Visible = True End With

Set mybutton1 = Application.CommandBars("图标工具启动").Controls.Add(Type:=msoControlButton, Temporary:=True) '在工具栏中新建按钮 With mybutton1 .FaceId = 41 '按钮图标ID .Caption = "向前翻" .Style = msoButtonIcon .OnAction = "i_changeLeft" .Visible = True End With Set mybutton1 = Application.CommandBars("图标工具启动").Controls.Add(Type:=msoControlButton, Temporary:=True) '在工具栏中新建按钮 With mybutton1 .FaceId = 39 '按钮图标ID .Caption = "向后翻" .Style = msoButtonIcon .OnAction = "i_changeRight" .Visible = True End With Set mybutton1 = Application.CommandBars("图标工具启动").Controls.Add(Type:=msoControlButton, Temporary:=True) '在工具栏中新建按钮 With mybutton1 .FaceId = 330 '按钮图标ID .Caption = "删除插入图标工具" .Style = msoButtonIcon .OnAction = "sDelAll" .Visible = True End With

End Sub

Sub i_changeLeft() On Error Resume Next If ei - 200 <= 0 Then si = 1 ei = 200 Else si = si - 200 ei = ei - 200 End If sAdd End Sub Sub i_changeRight() On Error Resume Next si = ei ei = ei + 200 sAdd End Sub 可用于WORD 或excel,在word 中可在当前光标处,在excel中可在活动单元格中插入我的工具栏中的图标。

将代码复制到word或excel 的模块中,运行myadd,点击新建工具栏上的显示图标待选框按钮(可显示我的工具栏)

相关附件:

dmvRrJNg.rar (11.69 KB, 下载次数: 689)

[此贴子已经被作者于2004-9-23 9:04:47编辑过]

TA的精华主题

TA的得分主题

发表于 2004-9-24 06:58 | 显示全部楼层

To sailorgg:

做得真不错!

纠正一个不足:“Selection.GoToPrevious what:=wdGoToEndnote '定位插入点为当前光标处”

此代码意思应为定位至前一个尾注处(Endnote应为尾注),如果图片格式为嵌入型的话,此代码为省略。否则应加入代码对图片格式进行适当设置.

[此贴子已经被作者于2004-9-26 15:49:22编辑过]

TA的精华主题

TA的得分主题

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

请问版主:正宗的定位光标到当前处的vba 代码如何写?

TA的精华主题

TA的得分主题

发表于 2009-9-10 14:25 | 显示全部楼层
谢谢sailorgg兄的分享!

TA的精华主题

TA的得分主题

发表于 2009-9-13 10:29 | 显示全部楼层
谢谢分享,不错的代码

TA的精华主题

TA的得分主题

发表于 2009-11-2 11:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
做个记号!!!已被学习!!!

TA的精华主题

TA的得分主题

发表于 2010-3-15 14:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-6-5 10:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 09:40 , Processed in 0.050507 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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