東東 發問時間: 電腦與網際網路軟體 · 1 0 年前

如何用vba刪除標準工具列中某個自行新增的鍵

小弟想在excel的標準工具列中新一個私人的按鍵,在workbook_open( )中用了以下的程式碼:

Dim myButton1 As CommandBarButton

Set myButton1 = Application.CommandBars("Standard").Controls.Add

With myButton1

.Style = msoButtonCaption '只顯示文字

.BeginGroup = True

.Caption = "測試"

.TooltipText = "測試"

.Tag = "MyCustomTag"

End With

確實可以新一個按鍵,但每次開啟此檔,又會另外新增一個,

越來越多,故查了一下資料,可在 workbook_beforeclose( )中寫個"刪除"的動作,

Application.CommandBars("standard").controls("myButton1").Delete

但小弟試過,卻發現會有針對上列程式碼的錯誤訊息出現,

我猜可能原因是因為 myButton1是用dim 宣告,故另一個程序讀不到,

但改宣告成 public myButton1 As CommandBarButton,

結果還是一樣,不知有哪位可以幫我解決這個問題?

謝謝!

已更新項目:

謝謝《沙拉油》,我的問題已解決!

1 個解答

評分
  • 1 0 年前
    最佳解答

    myButton1 設為功用變數,以下是 workbook 物件內的程式碼

    Dim myButton1 As CommandBarButtonPrivate Sub Workbook_BeforeClose(Cancel As Boolean) myButton1.DeleteEnd SubPrivate Sub Workbook_Open() Set myButton1 = Application.CommandBars("Standard").Controls.Add With myButton1 .Style = msoButtonCaption '只顯示文字 .BeginGroup = True .Caption = "測試" .TooltipText = "測試" .Tag = "MyCustomTag" End WithEnd Sub

還有問題?馬上發問,尋求解答。