最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Excel中的菜单和工具栏的ID编号

IT圈 admin 29浏览 0评论

2024年6月1日发(作者:绪白卉)

Excel中的菜单和工具栏的ID编号

下面先看看几个VBA操作Excel中的菜单和工具栏示例:

(1)如果您使用语句CommandBars(1).Controls("Help").ID或CommandBars(1).Controls("帮助

").ID,将会产生“无效的过程调用或参数”错误。您必须使用CommandBars(1).Controls("

帮助(H)").ID语句或采用其它的方法。产生上述错误的原因是在英文版本的Excel中“帮助”

菜单是用”Help”作为它的标题,而非英文版本中的Excel菜单标题是不同的。

(2)您可以使用FindControl方法对菜单进行操作。在VBA帮助系统中,对FindControl方法

给出了一个示例,可实现的功能为:在命令栏“Custom”中查找第一个控件。如果该控件

是按钮,则示例将用 FindControl 方法查找 Copy 按钮(位于 Standard 工具栏上),然后

复制 Copy 按钮的表面并粘贴到该控件上,代码如下:

Set oldCtrl = CommandBars("Custom").Controls(1)

If = 1 Then

Set newCtrl = ntrol(Type:= _

MsoControlButton, ID:= _

CommandBars("Standard").Controls("Copy").ID)

ce

ace

End If

当您将该示例输入ExcelVBE编辑器中进行调试时,会出现“运行时错误5:无效的过程调

用或参数”错误提示。其原因也是由于该程序是在英文版本的Excel中调试通过的,而非英

文版本的Excel中,控件的名称可能不相同。

因此,在对Excel的菜单和工具栏进行操作时,无论您是使用Controls属性得到该类控件的

所有对象,还是使用FindControl方法返回符合指定条件的CommandBarControl对象,都需

要对引用的控件名称或者ID编号与所使用的Excel版本相符合,这样才能使VBA程序正确

运行并得到所需要的结果。

在这里,推荐使用菜单和工具栏控件的ID编号。通常情况下,使用ID编号能在不同的语

言版本中均能运行。如在VBE的调试窗口中输入以下语句并回车后得到ID相应的结果。

? commandbars(1).FindControl(Id:=30007).Caption

工具(&T)

又如:dBars("Worksheet Menu Bar"). _

Controls("格式(O)").controls(1).execute

或ntrol(ID:=855).Execute

执行上述语句将弹出“单元格格式”对话框。

又如:Dim NewCtrl As CommandBarControl

Set NewCtrl = ntrol(ID:=113)

e

或ntrol(ID:=113).Execute

执行上述语句将对所选单元格或单元格区域文本加粗。

下面列出了Excel 2003中主要的菜单栏各菜单项和工具栏各按钮的ID编号。在文后附有一

个工作簿,可以罗列出您的Excel中所有菜单和工具栏的ID编号。

(1)一般工作表菜单栏编号为“Worksheet Menu Bar”或为1;图表菜单栏编号为“Char Menu

Bar”或为1。工具栏编号为0;快捷菜单编号为2。例如CommandBars("Worksheet Menu Bar")

或CommandBars(1)代表工作表菜单栏。

(2)Excel2003中文版顶级菜单的菜单名称和ID编号

菜单名称 ID编号

文件(F) 30002

编辑(E) 30003

视图(V) 30004

插入(I) 30005

格式(O) 30006

工具(T) 30007

数据(D) 30011

窗口(W) 30009

帮助(H) 30010

(3)其它控件名称和ID编号,下面举几个常见的:

名称 ID编号

剪切(T) 21

复制(C) 19

粘贴(P) 22

定位(G)„ 757

清除(A) 30021

删除(D)„ 478

其它的控件名称和ID编号详见示例文档 列出菜单和工具栏的ID编号.xls。

(17 KB, 下载次数: 246)

2006-9-8 21:27 上传下载次数: 246

[分享]Excel中的菜单和工具栏的ID编号

当然,在使用VBA对菜单和工具栏进行操作时,您可能也会需要进行反复调试才能找到正

确的名称或ID。

By fanjy in 2006-9-4

2024年6月1日发(作者:绪白卉)

Excel中的菜单和工具栏的ID编号

下面先看看几个VBA操作Excel中的菜单和工具栏示例:

(1)如果您使用语句CommandBars(1).Controls("Help").ID或CommandBars(1).Controls("帮助

").ID,将会产生“无效的过程调用或参数”错误。您必须使用CommandBars(1).Controls("

帮助(H)").ID语句或采用其它的方法。产生上述错误的原因是在英文版本的Excel中“帮助”

菜单是用”Help”作为它的标题,而非英文版本中的Excel菜单标题是不同的。

(2)您可以使用FindControl方法对菜单进行操作。在VBA帮助系统中,对FindControl方法

给出了一个示例,可实现的功能为:在命令栏“Custom”中查找第一个控件。如果该控件

是按钮,则示例将用 FindControl 方法查找 Copy 按钮(位于 Standard 工具栏上),然后

复制 Copy 按钮的表面并粘贴到该控件上,代码如下:

Set oldCtrl = CommandBars("Custom").Controls(1)

If = 1 Then

Set newCtrl = ntrol(Type:= _

MsoControlButton, ID:= _

CommandBars("Standard").Controls("Copy").ID)

ce

ace

End If

当您将该示例输入ExcelVBE编辑器中进行调试时,会出现“运行时错误5:无效的过程调

用或参数”错误提示。其原因也是由于该程序是在英文版本的Excel中调试通过的,而非英

文版本的Excel中,控件的名称可能不相同。

因此,在对Excel的菜单和工具栏进行操作时,无论您是使用Controls属性得到该类控件的

所有对象,还是使用FindControl方法返回符合指定条件的CommandBarControl对象,都需

要对引用的控件名称或者ID编号与所使用的Excel版本相符合,这样才能使VBA程序正确

运行并得到所需要的结果。

在这里,推荐使用菜单和工具栏控件的ID编号。通常情况下,使用ID编号能在不同的语

言版本中均能运行。如在VBE的调试窗口中输入以下语句并回车后得到ID相应的结果。

? commandbars(1).FindControl(Id:=30007).Caption

工具(&T)

又如:dBars("Worksheet Menu Bar"). _

Controls("格式(O)").controls(1).execute

或ntrol(ID:=855).Execute

执行上述语句将弹出“单元格格式”对话框。

又如:Dim NewCtrl As CommandBarControl

Set NewCtrl = ntrol(ID:=113)

e

或ntrol(ID:=113).Execute

执行上述语句将对所选单元格或单元格区域文本加粗。

下面列出了Excel 2003中主要的菜单栏各菜单项和工具栏各按钮的ID编号。在文后附有一

个工作簿,可以罗列出您的Excel中所有菜单和工具栏的ID编号。

(1)一般工作表菜单栏编号为“Worksheet Menu Bar”或为1;图表菜单栏编号为“Char Menu

Bar”或为1。工具栏编号为0;快捷菜单编号为2。例如CommandBars("Worksheet Menu Bar")

或CommandBars(1)代表工作表菜单栏。

(2)Excel2003中文版顶级菜单的菜单名称和ID编号

菜单名称 ID编号

文件(F) 30002

编辑(E) 30003

视图(V) 30004

插入(I) 30005

格式(O) 30006

工具(T) 30007

数据(D) 30011

窗口(W) 30009

帮助(H) 30010

(3)其它控件名称和ID编号,下面举几个常见的:

名称 ID编号

剪切(T) 21

复制(C) 19

粘贴(P) 22

定位(G)„ 757

清除(A) 30021

删除(D)„ 478

其它的控件名称和ID编号详见示例文档 列出菜单和工具栏的ID编号.xls。

(17 KB, 下载次数: 246)

2006-9-8 21:27 上传下载次数: 246

[分享]Excel中的菜单和工具栏的ID编号

当然,在使用VBA对菜单和工具栏进行操作时,您可能也会需要进行反复调试才能找到正

确的名称或ID。

By fanjy in 2006-9-4

发布评论

评论列表 (0)

  1. 暂无评论