English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我寫了一些巨集,以方便執行重複的事,但遇到兩個問題

第一:我不希望自己做的按鈕一直出現在上方功能列
我將一些巨集,用自訂工作列的方式,做了幾個 ICON 放在上方功能區,但我希望它是只針對特定的檔案才發生,而不是不論開啟哪個檔案,那些自訂的按鈕都一直在那兒。 請問要如何做到

第二:有一些巨集,我希望是跟隨 EXCEL 的,不是放在那個原始檔案裡。萬一那個原始產生大家都用到巨集的檔案,被移走,則就開不起來了。
請問要如何做到。

謝謝

2006-04-14 21:19:47 · 2 個解答 · 發問者 ? 3 in 電腦與網際網路 軟體

請問兩位,
#$%@.xla 是什麼樣的檔???

它在這個問題中可以扮演甚麼腳色!
因為我看到 在 VBA 中有很多其他軟體放入的,而且每次都會載入。

因為我做的檔案,在做完後,需要上繳給其他同仁及長官檢查結果乙及比對其他的資料,若他們看到巨集,對他們來說,我用了"怪物",會被認為我做的東西內容是有問題的 (因為不受到控制,所以他們不能相信計算的內容-----最好的辦法,就是,我用,檔案繳出去,她們沒看到,也沒感覺)
謝謝,延伸指教。
======
To 沙拉油
我懂!就是針對檔案的每一個動作,都做判斷

2006-04-16 05:31:23 · update #1

抱歉!
我找不到, personal.xls (個人巨集活頁簿)這檔案呢!

2006-04-16 08:36:19 · update #2

2 個解答

●●● 問題一 ●●●
在貼上底下的程式碼之前,請自行在專案內建立一個模組(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:51 補充:
你的意思是你有一個檔案,這個檔案不可已有巨集但是你需要巨集來處理這個檔案嗎?如果是的話,那麼你可以把巨集放在 personal.xls 內。工具>>巨集>>錄製新巨集出現「錄製巨集」對話方塊,裡面有個『將巨集儲存在』選個人巨集活頁簿>>確定>>停止錄製按 Alt + F11 開啟VBE,「專案總管」內會出現 personal.xls 將你的巨集寫在 personal.xls 內。 personal.xls 會隨著你開啟 excel 主程式時一併開啟,它會被儲存在 xlstart 資料夾內。

2006-04-16 21:12:57 補充:
而如果你在『問題一』所建立的「按鈕」就是要處理『不可以有巨集的這個檔案』,又要按鈕隨檔案出現而出現,也隨檔案消失而消失,那麼你需要知道 application 事件的用法,請自己先在VBA說明內的「解答精靈」內尋找一下「使用 Application 物件的事件」,並仔細參考一下,不懂如何使用再發問。

2006-04-16 21:16:43 補充:
最後,.xla 是增益集檔案,通常會寫些增加EXCEL應用的功能,例如分析工具箱、規劃求解、查表精靈....都是增益集檔案,增益集檔案可以是 .xla 或 .xll 檔案類型。

2006-04-16 21:22:56 補充:
最最後....最上面回應內容的巨集(Micro)裡的 Micro 是錯的英文老是不及格,所以把 Macro 都寫成 Micro 了... @__@

2006-04-15 20:24:31 · answer #1 · answered by 沙拉油 5 · 0 0

第二、您在錄製巨集時,會出現一對對話框(就是巨集命名的對話框),在「將巨集儲存在」:的欄位選擇「個人巨集活頁簿」。即可,但不建議如此作,理由是萬一您所錄製過的巨集有上百條時,您怎麼管理?
第一:工具列好像無法隨檔案呈現!工具列是隨應用程式出現,建議用其他的方法:用「userform] 的功能,在巨集程式,copy在command button下執行;另外再錄製一個「現用活頁簿」的巨集(內程式碼只寫userform1.show)即可

2006-04-15 13:52:53 補充:
userform就是自訂表單

2006-04-17 08:51:09 補充:
樓下的大大,回答的真好!personal.xls, 只要您的macro 存放在「個人巨集活頁簿」,就是存放在personal.xls這個檔案,是阿!巨集一開啟,如果excel的安全性設為中等,他就會出現警告視窗,不懂的人會怕害內有病毒,如果設為高時,巨集連執行都不行!

2006-04-15 09:52:15 · answer #2 · answered by janzechen 3 · 0 0

fedest.com, questions and answers