纯文本(一般) 只有名字 图标和文本 图标按钮和名字 当打开“自定义”对话框时,可以给工具栏按钮添加或修改图标。下表列出了可以使用的技术。 目 的 可以使用分隔线按相关性对控件分组。分隔线本身不是控件;更确切地说,可以在工具栏的每个控件前都设置一条分隔线。可以使用“自定义”对话框设置某条命令是一组控件中的第一个控件。 在工具栏上开始一组按钮 如果“自定义”对话框尚未打开,那么用鼠标指到“视图”菜单中的“工具栏”上,然后单击“自定义”。 使用Visual Basic 可以使用CommandBarControls集合的Add方法来向CommandBar对象添加新的控件,该对象表示某个特定的工具栏。要添加内置控件,可以用Add方法的参数Id指示该命令的ID编号。在下面这个例子在“Quick Tools”工具栏里添加了控件“Spelling”。 Set mySpell = CommandBars("Quick Tools").Controls.Add(Id:=2) 要对如何决定Microsoft Office 应用程序的内置命令的ID编号做更多的了解,请参考本章后面的“菜单项和菜单栏控件ID编号”一节的内容。 要添加自定义控件,可以先添加新的控件,然后设置OnAction 属性来指定点击该控件时运行的Visual Basic程序。设置Add 法的参数Type为msoControlButton指出该控件是一个按钮。设置该控件的FaceId值为一个内置控件的ID,用以复制该内置控件的外观。在下面这个Microsoft Excel例子里,在常用工具栏的“保存”按钮前添加了一个按钮。当用户点击该菜单项时,Microsoft Excel 运行Visual Basic程序OpenDatabaseProc。这个;例子还设置按钮上的图标是grid(ID 987)。 Set databaseItem = CommandBars("Standard").Controls. _ Add(Type:=msoControlButton, Before:=3) With databaseItem .OnAction:="OpenDatabaseProc" .FaceId = 987 End With 用户可以在Visual Basic 中设置表示工具栏按钮的对象它的许多属性,以此修改控件的外观。要作更多的了解,请参考“帮助”中的Style属性和FaceID 属性,以及CommandBarButtion对象的其他属性和方法的帮助主题。 设置开始一组控件的控件(也就是说,前面有一线条的控件),需要设置表示控件的CommandBarButton、CommandBarPopup或者CommandBarComboBox对象的BeginGroup属性为True(真)。要去除该线条,则设置属性BeginGroup为False(假)。使用Controls(Index),此处的索引是指控件的标题或索引号,来返回一个表示该控件的对象。。 添加和初始化文本框、列表框和组合框控件 可以通过“自定义”对话框添加内置文本框、列表框和组合框控件。步骤和本节前面介绍的添加内置控件的步骤相同。 必须使用Visual Basic来添加和初始化自定义的文本框、列表框以及组合框控件。在Visual Basic中使用CommandBarControls 集合的Add方法来添加文本框、列表框和组合框;参数Type指定了添加的控件种类,如下表所示: 添 加 控 件 可以使用文本框、列表框或组合框的Style属性指明在该框的左边是否显示控件的标题。 下面的例子向自定义工具栏添加了一个标为“Quarter”的组合框,并且给该组合框指定了一个名为“ScrollToQuarter”的宏。 Set newCombo = CommandBars("Custom1").Controls _ .Add(Type:=msoControlComboBox) With newCombo .AddItem "Q1" .AddItem "Q2" .AddItem "Q3" .AddItem "Q4" .Style = msoComboNormal .OnAction = "ScrollToQuarter" End With 当用户的Visual Basic应用程序运行时,在用户每次改变组合框控件时都要调用指定到该控件的OnAction属性中的过程。在该过程中,可以使用CommandBars对象的ActionControl属性来发现被更改的控件并且返回被更改的值。ListIndex属性返回输入到组合框中的内容。 删除工具栏控件 删除内置工具栏控件能够帮助用户定制自己的Visual Basic应用程序以满足需要。例如,要从删除工具栏中删除一个内置控件并且用该命令的自定义版本来替换它,新版本将执行用户的专门任务。抑或是要删除某个控件以简化界面或减少没有经验用户选用不希望使用的那些命令的可能性。 注释 可以恢复已经被删除的内置工具栏或工具栏控件。但是,不能恢复已经被删除的自定义工具栏或工具栏控件;必须重新创建它们。 使用“自定义”对话框 在“自定义”对话框打开的情况下,可以删除任何工具栏控件。 删除工具栏控件 如果“自定义”对话框尚未打开,用鼠标指到“视图”菜单中的“工具栏”上,然后单击“自定义”。 使用Visual Basic 可以使用Delete方法来删除自定义工具栏以及自定义或内置的工具栏控件。但不能删除内置工具栏。 以下Microsoft Excel中的例子从“常用”工具栏中删除了“打印”控件。 CommandBars("Standard").Controls("Print").Delete 下面的例子删除了名叫“Custom Bar”的自定义工具栏 CommandBars("Custom Bar").Delete 用户也可以恢复已经删除的内置工具栏控件。要做更多了解,请参考下一节的内容。 恢复内置工具栏控件 用户可以恢复已经删除的内置工具栏控件。但是,不能恢复已经被删除的自定义工具栏或工具栏控件;必须重新创建它们。 使用“自定义”对话框 用户可以使用“自定义”对话框来恢复内置工具栏中的内置控件集合。 恢复内置工具栏 如果“自定义”对话框尚未打开,则用鼠指向“视图”菜单中的“工具栏”一项,然后单击“自定义”。 可以使用Reset方法来恢复内置工具栏的组件。 以下Microsoft Excel中的例子恢复了“常用”工具栏的默认控件集合。 CommandBars("Standard").Reset
对工具栏的运行时刻修改 用户可以对在设计时刻创建的工具栏进行编程,使其那个在运行时对条件的变化作出动态响应。如果一个特殊的控件在某个场合下不是合适的选择,那么抑或可以删除或者禁用该控件以防止用户点中它。如果一个控件有两种状态来表示选项,用户可以采用在控件被按下时表示打开选项,控件被放开时表示关闭选项。 注释 虽然既可以使用“自定义”对话框也可以使用Visual Basic对工具栏进行设计时刻修改,但是必须使用Visual Basic来进行任何运行时刻修改。 显示或隐藏工具栏和工具栏控件 工具栏在屏幕上所占用的空间也可以以其他方式用来显示日期;用户可以在必要的时候显示工具栏而在不再需要它的时候把它隐藏起来。工具栏在它的Visual 属性为True(真)时是可见的,而在该属性为False(假)时是不可见的。设置该属性为True(真)就等价于,在“工具栏”对话框中的“工具栏”表里该工具栏名字旁边的复选框内打上对钩,然后单击“确定”。 下面的Microsoft Excel的过程指定给“视图”菜单中的菜单项View MyToolbar,用户每次点击该菜单项,就使该过程在菜单项和工具栏Visible属性的两种状态之间进行切换。当工具栏重新出现时,它所处的位置就是它隐藏不可见时的位置。 |