以下內容轉載自YAHOO知識+ ,由各路高手來分享使用EXCEL的一些技巧呦。
問題:
我寫了一些巨集,以方便執行重複的事,但遇到兩個問題
第一:我不希望自己做的按鈕一直出現在上方功能列
我將一些巨集,用自訂工作列的方式,做了幾個 ICON 放在上方功能區,但我希望它是只針對特定的檔案才發生,而不是不論開啟哪個檔案,那些自訂的按鈕都一直在那兒。 請問要如何做到
第二:有一些巨集,我希望是跟隨 EXCEL 的,不是放在那個原始檔案裡。萬一那個原始產生大家都用到巨集的檔案,被移走,則就開不起來了。
請問要如何做到。

最佳解答:
●●● 問題一 ●●●
在貼上底下的程式碼之前,請自行在專案內建立一個模組(Module ),模組內建力兩個巨集(Micro),巨集名稱為 Micro1 與 Micro2 ,巨集內的程式碼請自己寫。
然後,將底下的程式碼貼到 ThisWorkbook 物件模組內
貼完後『存檔』>>『關閉檔案』 >> 『重新開啟檔案』
Private mnctl As CommandBarButton
Private sdctl As CommandBarButton

Private Sub Workbook_Activate()
On Error Resume Next
mnctl.Visible = True
sdctl.Visible = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
mnctl.Delete
sdctl.Delete
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
mnctl.Visible = False
sdctl.Visible = False
End Sub

Private Sub Workbook_Open()
Set mnctl = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlButton)
With mnctl
.FaceId = 1253
.Caption = "功能表上的按鈕"
.OnAction = "Micro1"
End With

Set sdctl = Application.CommandBars("Standard").Controls.Add(msoControlButton)
With sdctl
.FaceId = 1254
.Caption = "一般工具列上的按鈕"
.OnAction = "Micro2"
End With
End Sub

開啟這個檔案後會在「功能表」上建立一個按鈕,按下按鈕會執行 Micro1
然後又會在「一般」工具列上建立一個按鈕,按下按鈕會執行 Micro2
檔案在作用中時上面兩個按鈕會顯示,檔案處於非作用中時上述兩個按鈕會隱藏,檔案關閉後上述兩個按鈕會被刪除。

●●● 問題二 ●●●
將巨集放在 personal.xls (個人巨集活頁簿)內。
2006-04-16 21:05 補充
你的意思是你有一個檔案,這個檔案不可已有巨集
但是你需要巨集來處理這個檔案嗎?

如果是的話,那麼你可以把巨集放在 personal.xls 內。
工具>>巨集>>錄製新巨集
出現「錄製巨集」對話方塊,裡面有個『將巨集儲存在』選個人巨集活頁簿>>確定>>停止錄製
按 Alt + F11 開啟VBE,「專案總管」內會出現 personal.xls
將你的巨集寫在 personal.xls 內。
personal.xls 會隨著你開啟 excel 主程式時一併開啟,它會被儲存在 xlstart 資料夾內。
2006-04-16 21:12 補充
而如果你在『問題一』所建立的「按鈕」就是要處理『不可以有巨集的這個檔案』,又要按鈕隨檔案出現而出現,也隨檔案消失而消失,那麼你需要知道 application 事件的用法,請自己先在VBA說明內的「解答精靈」內尋找一下「使用 Application 物件的事件」,並仔細參考一下,不懂如何使用再發問。
2006-04-16 21:16 補充
最後,.xla 是增益集檔案,通常會寫些增加EXCEL應用的功能,例如分析工具箱、規劃求解、查表精靈....都是增益集檔案,增益集檔案可以是 .xla 或 .xll 檔案類型。
2006-04-16 21:22 補充
最最後....
最上面回應內容的巨集(Micro)裡的 Micro 是錯的
英文老是不及格,所以把 Macro 都寫成 Micro 了... @__@

原文出處:
http://tw.knowledge.yahoo.com/question/?qid=1206041501270
arrow
arrow
    全站熱搜

    凱薩琳 發表在 痞客邦 留言(0) 人氣()