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

本文介绍如何使用VBA操作Excel中的菜单和工具栏,包括使用ID编号和FindControl方法来确保跨语言版本的一致性,并提供了一些实用的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

下面先看看几个VBA操作Excel中的菜单和工具栏示例:
(1)如果您使用语句CommandBars(1).Controls("Help").IDCommandBars(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 oldCtrl.Type = 1 Then
   Set newCtrl = CommandBars.FindControl(Type:= _
       MsoControlButton, ID:= _
       CommandBars("Standard").Controls("Copy").ID)
   NewCtrl.CopyFace
   OldCtrl.PasteFace
End If
当您将该示例输入ExcelVBE编辑器中进行调试时,会出现“运行时错误5:无效的过程调用或参数”错误提示。其原因也是由于该程序是在英文版本的Excel中调试通过的,而非英文版本的Excel中,控件的名称可能不相同。
因此,在对Excel的菜单和工具栏进行操作时,无论您是使用Controls属性得到该类控件的所有对象,还是使用FindControl方法返回符合指定条件的CommandBarControl对象,都需要对引用的控件名称或者ID编号与所使用的Excel版本相符合,这样才能使VBA程序正确运行并得到所需要的结果。
在这里,推荐使用菜单和工具栏控件的ID编号。通常情况下,使用ID编号能在不同的语言版本中均能运行。如在VBE的调试窗口中输入以下语句并回车后得到ID相应的结果。
? commandbars(1).FindControl(Id:=30007).Caption
工具(&T)
又如:Application.CommandBars("Worksheet Menu Bar"). _
Controls("格式(O)").controls(1).execute

Application.CommandBars.FindControl(ID:=855).Execute
执行上述语句将弹出“单元格格式”对话框。
又如:Dim NewCtrl As CommandBarControl
Set NewCtrl = CommandBars.FindControl(ID:=113)
NewCtrl.Execute
Application.CommandBars.FindControl(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。
当然,在使用VBA对菜单和工具栏进行操作时,您可能也会需要进行反复调试才能找到正确的名称或ID。

示例文档见UploadFiles/2006-9/98861761.rar

 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值