返回列表 上一主題 發帖

[發問] 兩個工作表的 commandbar

[發問] 兩個工作表的 commandbar

我有自製工具列,但是當我開啟兩個檔案,要關閉其中一個檔案時,兩個檔案的commandbar都會被刪掉,要怎樣才能關掉一個檔案時,還能保留工作列?????????

測試.rar (141.36 KB)

回復 12# jackyq

瞭解~謝謝你的幫忙~~

TOP

回復 9# s13030029


Private Sub Workbook_WindowActivate(ByVal Wn As Window)

End Sub

這段只能放 ThisWorkBook 裡面

否則不起作用

硬要放 module 要弄點麻煩的手段才能辦到

TOP

回復 10# jackyq
那這個可以寫在巨集裡嗎?

TOP

回復 9# s13030029


視窗從 非活動 變成 活動 的那一霎那

再執行一次Workbook_Open

TOP

回復 8# jackyq
謝謝大大~這是我要的~~
不過我想請問下面這段是什麼樣的用法???
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Workbook_Open
End Sub

是當視窗活動時再執行一次Workbook_Open嗎?

TOP

'自訂工具列
Dim Abar As CommandBar    '宣告工具列物件
Dim 已提示 As Boolean


Private Sub Workbook_Open()
    If 已提示 = False Then
       已提示 = True
       C = MsgBox("功能選單在上方工具列的「增益集」裡!!!", vbExclamation, "使用方法")
    End If

    For Each Abar In Application.CommandBars
        If Not Abar.BuiltIn Then Abar.Delete
    Next

    '宣告工具列按鈕物件
    Dim myButton1 As CommandBarButton  '選擇使用說明
    Dim myButton2 As CommandBarButton  '選擇管制計畫表
   
   '新增一個工具列
    Set Abar = Application.CommandBars.Add(Name:="畫面選擇")
With Abar
'畫面選擇----------------------------------------------
        '使用說明
        Set myButton1 = .Controls.Add(msoControlButton)
        With myButton1
            .Style = msoButtonIconAndCaption '同時顯示文字和小圖示
            .BeginGroup = True
            .Caption = "使用說明"            '顯示在工具列上的按鈕文字
            '.TooltipText = "畫面選擇"        '滑鼠移過去時,所顯示的提示文字
            .FaceId = 487                    '小圖示
            .Tag = "MyCustomTag"
           .OnAction = "選擇使用說明"        '設定按下此鍵時所要執行的巨集
        End With
        '管制計畫表
        Set myButton2 = .Controls.Add(msoControlButton)
        With myButton2
            .Style = msoButtonIconAndCaption '同時顯示文字和小圖示
            .BeginGroup = True
            .Caption = "管制計畫表"          '顯示在工具列上的按鈕文字
            '.TooltipText = "畫面選擇"        '滑鼠移過去時,所顯示的提示文字
            .FaceId = 69                     '小圖示
            .Tag = "MyCustomTag"
           .OnAction = "選擇管制計畫表"      '設定按下此鍵時所要執行的巨集
        End With
        .Position = msoBarTop                '工具列擺放在上層
        .Visible = True
End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim Abar As CommandBar
    For Each Abar In Application.CommandBars
        If Not Abar.BuiltIn Then Abar.Delete
    Next
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Workbook_Open
End Sub

TOP

回復 6# jackyq [
謝謝大大~~
這樣的方法是可以用
就是同時顯示
但是還要想想要如何避免使用者去按到不是該檔案的工具列才行@@
畢竟巨集用的不一樣...Orz

TOP

本帖最後由 jackyq 於 2019-8-6 15:56 編輯

Private Sub Workbook_Open()

'    For Each Abar In Application.CommandBars
'         If Not Abar.BuiltIn Then Abar.Delete
'     Next

    '宣告工具列按鈕物件
    Dim myButton1 As CommandBarButton  '選擇使用說明
    Dim myButton2 As CommandBarButton  '選擇管制計畫表
   
   '新增一個工具列
    on error resume next
    Set Abar = Application.CommandBars.Add(Name:="畫面選擇")
   if err then exit sub
    on error goto 0
    C = MsgBox("功能選單在上方工具列的「增益集」裡!!!", vbExclamation, "使用方法")

With Abar
'畫面選擇----------------------------------------------
        '使用說明
        Set myButton1 = .Controls.Add(msoControlButton)
        With myButton1
            .Style = msoButtonIconAndCaption '同時顯示文字和小圖示
            .BeginGroup =

.................................................

TOP

回復 3# jackyq

大大妳好~
我有遇到一個問題,就是現在我有兩檔案,但是是不一樣的commandbar,我先打開一個後,再打開第二個時,第二個的commandbar會蓋掉第一個的commandbar,該怎麼辦@@

TOP

        靜思自在 : 謊言像一朵盛開的鮮花,外表美麗,生命短暫。
返回列表 上一主題