Board logo

標題: [發問] 如何讓已定義巨集的按鈕在切換不同分頁時都可被看到(已解決) [打印本頁]

作者: swatt    時間: 2011-7-6 19:52     標題: 如何讓已定義巨集的按鈕在切換不同分頁時都可被看到(已解決)

本帖最後由 swatt 於 2011-7-11 13:37 編輯

請問各位高手大大,
我已經定義(連結)某個巨集給一個按鈕,並希望在切換不同分頁(sheet)時,此按鈕都可被看到(即可按下執行),
也就是讓此按鈕一直 on the top,不會在切換分頁時被蓋掉,請問該如何做呢?
作者: chin15    時間: 2011-7-6 20:23

如圖,把笑臉拉到工具列上,指定巨集。
[attach]6924[/attach]
作者: onegirl0204    時間: 2011-7-7 08:17

回復 2# chin15


受教了,謝謝!另外可否請教你是否知道如何查看到插入名稱∼定義的總名單?因為它好像是個別檔案裡才看得到,若有不同檔名設了相同的定義名字有關係嗎?或許應該換個方式請問:不同檔案即使定義名字相同也無妨,是嗎?
作者: swatt    時間: 2011-7-7 15:02

感謝 chin15 大大,
新增工具列的方式比我自己可想到方法好多了。
作者: swatt    時間: 2011-7-7 15:49

再請問一下 ,
我新增一個工具列,並加進去已定義巨集的按鈕,這樣可以達成目的。
可是這樣新增的工具列在每個workbook都可看得到,
可否將它指定成只有某個workbook專屬的工具列嗎?
作者: Happkkevin    時間: 2011-7-7 20:09

曾收集到類似分享,以VBA 寫於  Workbook  開啟自定義按鈕,於關閉檔案時刪除
但未詳細研究其寫法,只更改自己欲定義的地方
可開啟附件自行研究即可,若對 VBA 有基礎應該可輕易知道該更改地方
若想知道詳細寫法含意,需其他高手協助釋疑,
我只知道某些區塊,希望有幫助

[attach]6931[/attach]方式

主要VBA 如下

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   
Sheets("測試").Select
On Error Resume Next
   Application.CommandBars("MyMenu").Delete
   Application.CommandBars("ply").Controls("個人操作表單").Delete
   
   
End Sub

Private Sub Workbook_Open()

Sheets("測試").Select

On Error Resume Next
   Application.CommandBars("MyMenu").Delete
   Application.CommandBars("ply").Controls("個人操作表單").Delete
   
Dim MyMenuBar As CommandBar
Dim MyButton As CommandBarButton

Set MyMenuBar = Application.CommandBars.Add
   With MyMenuBar
     .Visible = True
     .Name = "MyMenu"
     .Position = msoBarTop
    Set MyButton = .Controls.Add
      With MyButton
         .Visible = True
         .Caption = "個人操作表單(&P)"
         .Style = msoButtonIconAndCaption
         .FaceId = 988
         .OnAction = "測試個人表單巨集"
      End With
   End With
   
   Set MyButton = Application.CommandBars("ply").Controls.Add(msoControlButton, , , 1)
      With MyButton
         .Caption = "個人操作表單"
         .Visible = True
         .FaceId = 456
         .OnAction = "測試個人表單巨集"
      
      End With
      


   
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
If Workbooks.Count = 1 Then
   Application.CommandBars("MyMenu").Controls("個人操作表單(&P)").Enabled = False

End If

End Sub
作者: swatt    時間: 2011-7-7 20:19

感謝 Happkkevin 大大,
原來邏輯是藉著開啟/關閉檔案,來開啟/關閉工具列,
又學到一招,謝謝啦~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)