如果想要提取Excel界面的某个图标,可以使用VBA的CommandBars对象将其提取出来:
Application.CommandBars.Controls.intFaceId
Application.CommandBars.Controls.CopyFace
intFaceId从1-18028
Option ExplicitSub 获取Excel中的所有内置控件的FaceId和图像() Dim cbr As CommandBar, ctl As CommandBarButton Dim intCol As Integer, intRow As Integer Dim intFaceId As Integer If Application.WorksheetFunction.CountA(Cells) <> 0 Then MsgBox "活动工作表中包含数据,请选择一个空工作表!" Exit Sub End If On Error GoTo errTrap \'错误捕捉 Application.ScreenUpdating = False Set cbr = Application.CommandBars.Add(MenuBar:=False, Temporary:=True) Set ctl = cbr.Controls.Add(Type:=msoControlButton, Temporary:=True) intRow = 1 Do For intCol = 1 To 8 intFaceId = intFaceId + 1 Application.StatusBar = "FaceID=" & intFaceId \' 状态栏提示一下 ctl.FaceId = intFaceId ctl.CopyFace \'复制图标图像,如果复制的是不可见图像,会出现编号为1004的错误 ActiveSheet.Paste Cells(intRow, intCol + 1) \'粘贴图标图像 Cells(intRow, intCol).Value = intFaceId Next intCol intRow = intRow + 1 LooperrTrap: \'错误处理 If Err.Number = 1004 Then Resume Next Application.StatusBar = False cbr.Delete Application.ScreenUpdating = TrueEnd Sub
效果:
最后一页:
-End-