公告版位

若開啟文件時,想同時顯示自製的工具列,可在 VBE 環境中,
雙擊 〝ThisWorkBook〞,在 內建的 Private Sub Workbook_Open() 程序中,
加入底下的程式碼即可。

 
Private Sub Workbook_Open()
      Dim myNewBar As CommandBar            '宣告工具列物件
      Dim myButton1 As CommandBarButton   '宣告工具列按鈕物件
      Dim myButton2 As CommandBarButton

      Set myNewBar = Application.CommandBars.Add     '新增一個工具列
      myNewBar.Name = "YDM-Bar"                             '工具列命名

      With myNewBar
          Set myButton1 = .Controls.Add(msoControlButton)

         
With myButton1
              .Style = msoButtonCaption   '只顯示文字 底下這3種型式選一種
              '.Style = msoButtonIcon       '只顯示小圖示
              '同時顯示文字和小圖示
              '.Style = msoButtonIconAndCaption msoComboLabel   
              .BeginGroup = True
              .Caption = "測試"                  '顯示在工具列上的按鈕文字
              .TooltipText = "測試"            '滑鼠移過去時,所顯示的提示文字
              .FaceId = 159                       '小圖示
              .Tag = "MyCustomTag"
             .OnAction = "MainVBA"    
'設定按下此鍵時所要執行的巨集
 
          End With

          .Position = msoBarTop             '工具列擺放在上層
          .Visible = True
      End With
End Sub

註1:按鍵的數量可以隨自己需求去增加。
註2:小圖示所對應到的FaceID 可到底下這個網站去下載所提供的『增益集』
         http://skp.mvps.org/faceid.htm
註3:按下該按鈕後所要執行的巨集,寫在 OnAction 屬性中。

上面的程式碼可達成顯示自製工具列的目地,但每次開啟該檔都會新增自製的
工具列,會造成同名字的錯誤訊息!故還得在另一個內建的程序中寫入底下的
程式碼:
             Private Sub Workbook_BeforeClose(Cancel As Boolean)
                   Application.CommandBars("YDM-Bar").Delete
             End Sub

這樣在關閉該文件時,會先將該工具列刪除,就不會造成錯誤訊息。

創作者介紹

YDM 生活學習誌

ydmqqq 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • tom
  • 請問 Private Sub Workbook_Open()在那裡?我找好久不到 謝謝
找更多相關文章與討論