Set cstmAccounting = CommandBars("Worksheet Menu Bar").Controls _ .Add(Type:=msoControlPopup, Before:=9) cstmAccounting.Caption = "&Accounting" 注释 用户在新菜单的名称里作为该菜单访问键的字母前面加一个“&”符。一旦添加好了菜单,当用户通过Controls(Index)引用该菜单时,可以在菜单名中使用“&”符,也可以不用。 添加子菜单 子菜单是附加在另一个菜单(父菜单)旁边,靠近某个菜单项(子菜单标题) 的菜单。用户可以给菜单、其他的子菜单和快捷菜单添加子菜单。 当用户单击菜单栏中的菜单名显示出该菜单的各项时,可以将鼠标指到父菜单中的子菜单标题上,这时子菜单上的菜单项就显示出来。类似于首先给菜单栏添加一个空菜单(有名字但没有菜单项)然后再添加某些菜单项,用户也须首先给父菜单添加一个空的子菜单,然后再添加菜单项。 使用“自定义”对话框 使用“自定义”对话框来给另一个菜单添加子菜单。 向菜单添加子菜单 如果“自定义”对话框尚未打开,用鼠标指到“视图”菜单中的“工具栏”上,然后单击“自定义”。 将“新菜单”一项从“命令”栏拖到菜单栏中想添加子菜单的地方。 在新的子菜单上单击鼠标右键,然后在“名字”栏中键入一个名字。在为该子菜单设定的作为访问键的字母前面键入一个“&”符。 使用Visual Basic 用户需使用CommandBarControls集合的Add方法来向CommandBar对象添加子菜单,该对象表示另一个菜单栏。在msoControlPopup里设置Add方法的Type参数用来指定出添加的控件是一个pop-up(弹出)控件-类型和指示菜单栏中某个菜单的控件相同。参数Before指定了新菜单在原有菜单栏诸菜单中的位置。通过Add方法设置CommandBarPopup对象的Caption属性,用于指定子菜单的名称和访问键。在下面这个Microsoft Excel的例子中在工作表菜单栏的Accounting菜单底下添加了一个名为“Product”的新的子菜单。 Set cstmAcctProduct = CommandBars("Worksheet Menu Bar").Controls("Accounting") _ .Controls.Add(Type:=msoControlPopup) cstmAccProduct.Caption = "&Product" 注释 用户在新子菜单的名称里作为该菜单访问键的字母前面加一个“&”符。一旦添加好了子菜单,当用户通过Controls(索引)引用该子菜单时,可以在子菜单名中使用“&”符,也可以不用。 添加命令和命令分组 用户可以给任何内置或自定义的菜单或子菜单添加命令,也可以修改其外观并且进行直观上的逻辑分组。本节讨论如何向菜单和子菜单添加命令。下面的一节讨论如何添加快捷菜单以及向快捷菜单添加菜单项这一特殊问题。 注释 虽然可以向菜单和子菜单添加文本框、列表框以及组合框,但这通常不是显示或返回信息的最好办法。如果要添加自定义文本框、列表框和组合框,须使用和把它们添加到工具栏中相同的技术(参考本章后面的“工具栏的设计时刻修改”一节的内容)。 使用“自定义”对话框 “自定义”对话框提供了向菜单和子菜单添加菜单项的一种简便的方法。 向菜单或子菜单添加内置命令 如果“自定义”对话框尚未打开,用鼠标指到“视图”菜单中的“工具栏”上,然后单击“自定义”。 将命令从“命令”栏中拖到菜单或子菜单中添加该命令的位置。 技巧 用户也可以打开包含了要被复制的内置命令的菜单栏,然后按下“CTRL”,同时将该命令从中拖到另一个菜单栏里,完成复制。 用户也可以从 “自定义”对话框也提供了向内置或自定义菜单栏添加自定义命令的一种快捷方法。但是,每种Microsoft Office应用程序都包含了不同的技术来使用“自定义”对话框完成该功能。下面的段落介绍了这些区别。 Microsoft Access 要添加运行宏的命令项,应该按照和向菜单添加内置命令相同的步骤来完成。在“类别”栏中,单击“所有宏”。将所需的宏从“命令”表拖到希望它在菜单中所处的位置上。要向菜单添加Function过程,应该按照和向菜单添加内置命令相同的步骤来完成。在“类别”栏中,单击任何一种类别,然后将任和一项从“命令”表拖到它在菜单中应处的位置上。在该项上单击鼠标右键,任何单击“控制属性”,显示“控制属性”对话框。在“标题”栏内,删除当前的名字,任何键入命令的新名字,在“所在操作”栏内,键入运行Visual Basic Function过程的表达式。该表达式必须采用以下语法:=functionname()。 Microsoft Excel 按照和向菜单添加内置命令的过程相同的步骤来完成;在“类别”栏内,单击“宏”,然后将“自定义菜单项”从“命令”栏拖到它在菜单中应处的位置。在新菜单项上单击鼠标右键,任何单击“指定宏”。在“指定宏”对话框的“宏名”一栏中,键入要运行的宏的名字。 Microsoft Word 按照和向菜单添加内置命令的过程相同的步骤来完成;在“类别”栏内,单击“宏”,然后将宏从“命令”栏拖到希望它在菜单中所处的位置。 技巧 在Word里,如果写了一个与内置Word命令同名的过程(或者,如果写了一个在与某个内置Word命令同名的模块内名为“MAIN”的过程),只要包含该过程的模块有效,那么该过程将替换内置命令的功能。在所有出现该命令的菜单里的该命令的副本均执行替换过程。要对控制自定义内容作更进一步的了解,请参考本章前面的“用户界面的更改范围”一节的内容。要对修改Word命令作更多的了解,请参考第七章,“Microsoft Word 对象”。 Microsoft PowerPoint 按照和向菜单中添加内置命令相同的步骤来完成;在“类别”栏内,单击“宏”,然后将宏从“命令”栏拖到希望它在菜单中所处的位置。 修改命令的外观 在菜单中的任何命令都可以在该命令的名字旁边显示出一个图标按钮。命令的“样式”决定了是否在命令旁边显示出一个图标按钮。“自定义”对话框打开后,使用快捷菜单上的命令来设定命令的式样。下表描述了式样对菜单命令的影响。
式样 注释 在默认情况下,有些内置菜单命令没有和它们相关联的图标按钮,无论设置何种式样都不会显示图标。但是,可以给任何内置菜单命令添加图标。 当“自定义”对话框打开后,可以添加或修改菜单命令旁边的图标按钮。下表列出了可以使用的技术。 目 的 技巧 在Microsoft Access 中,可以使用“属性”对话框设置菜单命令的许多其他属性。要作更多了解,请参考“Building Applications with Microsoft Access 97”的第一章。 命令分组 用户可以在菜单中用线条将相关的命令分隔成组。线条本身并不是菜单项;而且可以在菜单中的任何一项前面设置出现分隔线。用户可以在“自定义”对话框中将一条命令设为一组命令中的第一项。 |