• default color
  • green color
  • red color

www.59kd.com

Friday
Sep 10th
Excel2007中老式工具栏的限制 PDF 打印 E-mail
作者:Administrator   
Wednesday, 2008年 July 30日 22:06

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

  (1)不能够自由浮动   

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

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

  创建工具栏的代码   

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

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

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

  Private Sub Workbook_Open() 

  Call CreateToolbar 

  End SubPrivate 

  Sub Workbook_BeforeClose(Cancel As Boolean) 

  Call DeleteToolbar 

  End Sub 过程CreateToolbar的代码如下: 

  Const TOOLBARNAME As String = "我的工具栏" 

  Sub CreateToolbar() 

  Dim TBar As CommandBar 

  Dim Btn As CommandBarButton 

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

  On Error Resume Next 

  CommandBars(TOOLBARNAME).Delete 

  On Error GoTo 0 

  '创建工具栏 

  Set TBar = CommandBars.Add 

  With TBar 

  .Name = TOOLBARNAME 

  .Visible = True 

  End With 

  '添加按钮 

  Set Btn = TBar.Controls.Add(Type:=msoControlButton) 

  With Btn 

  .FaceId = 300 

  . 

  .Caption = "这里是Macro1的提示" 

  End With   

  '添加另一个按钮 

  Set Btn = TBar.Controls.Add(Type:=msoControlButton) 

  With Btn 

  .FaceId = 25 

  . 

  .Caption = "这里是Macro2的提示" 

  End With 

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

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

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

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

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

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

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

  PLAIN TEXT 

  Visual Basic: 

  .Picture = Application.CommandBars.GetImageMso _ 

  ("AcceptInvitation", 16, 16) 

  关于imageMso图像的更多信息,请参见“定制RibbonX”。 

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

  Sub DeleteToolbar() 

  On Error Resume Next 

  CommandBars(TOOLBARNAME).Delete 

  On Error GoTo 0 

  End Sub 

LAST_UPDATED2
 

快递信息免费发布


人SEO