標題:
[問題]如何是用另用一個excel file的巨集,而不需要開啟此excel file
[打印本頁]
作者:
jarodz
時間:
2011-12-13 02:14
標題:
[問題]如何是用另用一個excel file的巨集,而不需要開啟此excel file
本帖最後由 jarodz 於 2012-1-4 00:17 編輯
因為小弟寫了一些 VBA 的巨集分享給同事使用,
一開始是放在一個excel,要用的人去copy這個excel file來用,
但是隨著使用人數及次數變多,加上中途有改版,現在變成好幾個檔案好幾個版本,
害我自己都忘了哪個是最新版,下次要從哪個改起。
後來發現可以作個按鈕去call同一個excel裡的巨集,
但是遇到一個問題,是每次執行都會把這個共用的excel開起來,
有沒有辦法可以不讓他開起來或隱藏起來且不會把檔案鎖成唯讀。
謝謝回答。
一個對excel操作不熟的程式人留。
作者:
GBKEE
時間:
2011-12-22 16:25
本帖最後由 GBKEE 於 2011-12-22 16:36 編輯
回復
1#
jarodz
加入一般模組 名稱為"Module1" 檔案開啟後自動執行Auto_Open程序
另存檔案名稱, 原檔案就不會開啟.
Option Explicit
Private Sub Auto_Open()
ThisWorkbook.SaveAs CurDir & "\" & Split(ThisWorkbook.Name, ".")(0) & "備份" '另存檔案名稱
With ThisWorkbook.VBProject
.VBComponents.Remove .VBComponents("Module1") ' 刪除 Module1 模組
End With
End Sub
複製代碼
作者:
jarodz
時間:
2012-1-3 23:16
回復
2#
GBKEE
Dear GBKEE,
謝謝你的回答,
不好意思,可能是我原先的意思描述的不清楚,
我想作的是類似增益集,(我已經知道如何把一般xls弄成增益集)
但不知如何在新建的excel中 call 這個增益集裡的Sub routine?
最終我是弄成,點擊此excel增益集會自動在工具列增加按鈕,
按此按鈕就會執行excel增益集中的sub routine.
謝謝。
BR,
Jarod
作者:
GBKEE
時間:
2012-1-4 07:21
回復
3#
jarodz
我想作的是類似增益集,(我已經知道如何把一般xls弄成增益集) 但不知如何在新建的excel中 call 這個增益集裡的Sub routine
Run "這個增益集!routine"
作者:
jarodz
時間:
2012-1-4 10:48
回復
4#
GBKEE
現在有個問題,
在預備把作成增益集前的xls作一個工具列的button,assign 這個xls裡的macro 給它,
然後再把 IsAddin 屬性設為 true ,後儲存。
在另外一台開啟此 xls,此增加的button無法出現,
好像是無法看到增益集裡的sub routine.
這何解?
同樣的問題,xls設為增益集後在macro list就看不到其 Macro,
看不到還是可以執行嗎?
BR,
Jarod
BR,
Jarod
作者:
GBKEE
時間:
2012-1-4 11:59
回復
5#
jarodz
複製到一般模組中
Private Sub Auto_Open()
Dim newcontrl As CommandBarControl
Application.CommandBars.ActiveMenuBar.Reset
Set newcontrl = Application.CommandBars.ActiveMenuBar.Controls.Add(10)
With newcontrl
.Caption = "控制鈕"
End With
Set A = newcontrl.Controls.Add(1)
A.Caption = "本機使用者"
A.OnAction = "EX"
Set A = newcontrl.Controls.Add(1)
A.Caption = "本機資訊"
A.OnAction = "EX1"
End Sub
Private Sub Auto_Close()
Application.CommandBars.ActiveMenuBar.Reset
End Sub
Private Sub Ex()
MsgBox "使用者 : " & Application.UserName
End Sub
Private Sub Ex1()
MsgBox "Welcome to Microsoft Excel version " & _
Application.Version & " running on " & _
Application.OperatingSystem & "!"
End Sub
複製代碼
作者:
jarodz
時間:
2012-1-5 11:33
Dear GBKEE,
謝謝,想再請教一下用 Auto_Open 跟寫在 ThisWorkbook 用 Workbook_Open() 有什麼差別,
再者除了 Auto_Open, Auto_Close 之外,在一般還有什麼特殊的 event 可以 trap 到,
這要用什麼關鍵字查 help 或去哪裡可以看到這些 event list,謝謝。
BR,
Jarod
作者:
GBKEE
時間:
2012-1-5 11:44
回復
7#
jarodz
Workbook_Open() 是ThisWorkbook的預設事件 優先 Auto_Open() ( 於一般模組 )
其他預設事件 如圖:
[attach]9071[/attach]
作者:
jarodz
時間:
2012-1-5 11:57
Dear GBKEE
WorkBook_Open() 可以很直覺的發現了,
但是 Auto_Open()這個是去哪裡查到的?
我想問的是一般module可以用的event要去哪查?
Auto_Open() 在IDE的視窗中不像WorkBook_Open()會自動列出來。
BR,
Jarod
作者:
GBKEE
時間:
2012-1-5 12:28
回復
9#
jarodz
一般module可以用的event
就AUTP_OPEN , AUTO_CLOSE 這2個,如果還有請知道的分享,
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)