Excel2007教程:对中老式工具栏的限制 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

  如果想在Excel 2007中创建一个工具栏,应注意下面的一些限制:

  (1)不能够自由浮动;

  (2)总是显示在加载项选项卡自定义工具栏组中;

  (3)Excel会忽略一些CommandBar的属性和方法;

  创建工具栏的代码:

  这里的代码假定有一个带有两个名为Macro1和Macro2宏的工作簿,并且在该工作簿打开时创建这个工具栏,在关闭该工作簿时删除这个工具栏,

Excel2007教程:对中老式工具栏的限制



  注意,与Ribbon定制不同,不管当前是哪个工作簿,自定义工具栏者是可见的。

  在ThisWorkbook代码模块中,输入下面的过程。第一个过程为在打开工作簿时调用创建工具栏的过程,第二个过程为在关闭工作簿时调用删除工具栏的过程。

  PrivateSubWorkbook_Open()

  CallCreateToolbar

  EndSubPrivate

  SubWorkbook_BeforeClose(CancelAsBoolean)

  CallDeleteToolbar

  EndSub过程CreateToolbar的代码如下:

  ConstTOOLBARNAMEAsString=我的工具栏

  SubCreateToolbar()

  DimTBarAsCommandBar

  DimBtnAsCommandBarButton

  '如果存在则删除已存在的工具栏

  OnErrorResumeNext

  CommandBars(TOOLBARNAME).Delete

  OnErrorGoTo0

  '创建工具栏

  SetTBar=CommandBars.Add

  WithTBar

  .Name=TOOLBARNAME

  .Visible=True

  EndWith

  '添加按钮

  SetBtn=TBar.Controls.Add(Type:=msoControlButton)

  WithBtn

  .FaceId=300

  .

  .Caption=这里是Macro1的提示

  EndWith

  '添加另一个按钮

  SetBtn=TBar.Controls.Add(Type:=msoControlButton)

  WithBtn

  .FaceId=25

  .

  .Caption=这里是Macro2的提示

  EndWith

  EndSub

  代码中使用了一个模块级的常量TOOLBARNAME,用来存储工具栏的名称,并用于这两个过程中,

电脑资料

Excel2007教程:对中老式工具栏的限制》(https://www.unjs.com)。

  如果已存在具有相同名字的工具栏,则该过程先删除该工具栏。这样将会避免企图创建与已存在的工具栏有相同名称的工具栏时,产生错误。

  通过使用CommandBars对象的Add方法来创建该工具栏,使用Controls对象的Add方法来添加两个按钮,每个按钮都有三个属性:

  FaceID:确定显示在按钮中的图像的数字。

  OnAction:在单击按钮时执行的宏。

  Caption:鼠标指针悬浮在按钮上时显示的屏幕提示。

  技巧:不仅可以设置FaceID属性,还可以设置Picture属性,使用任何的imageMso图像。例如,下面的语句晶粒示一个绿色的勾号: PLAINTEXT

  VisualBasic:

  .Picture=Application.CommandBars.GetImageMso_

  (AcceptInvitation,16,16)  关于imageMso图像的更多信息,请参见定制RibbonX。

  在关闭工作簿时,触发Workbook_BeforeClose事件过程,调用过程DeleteToolbar:   SubDeleteToolbar()

  OnErrorResumeNext

  CommandBars(TOOLBARNAME).Delete

  OnErrorGoTo0

  EndSub

最新文章