標題:
日期一到就刪除巨集.
[打印本頁]
作者:
man65boy
時間:
2011-9-8 18:51
標題:
日期一到就刪除巨集.
如提:日期一到就刪除特定的巨集
Sheet1程式區裡放著程式碼
要如何在指定的日期到期時突破VBAProject屬性密碼保護,自動刪除Sheet1程式區的程式碼,
簡單來說,只要指定的日期一到,不需提醒就自動刪除指定的工作表巨集,
請各位先進老師們,幫忙一下...謝謝!!!
作者:
jimmyhk
時間:
2011-9-8 20:22
回復
1#
man65boy
可否問一問這樣做的目的是???
作者:
GBKEE
時間:
2011-9-8 20:53
回復
1#
man65boy
VBAProject屬性有
密碼保護
,就無法刪除Sheet1程式區的程式碼.
作者:
man65boy
時間:
2011-9-8 20:54
有時給客戶的資料都為了方便,都會貼心的用一些實用性的巨集,好方便計算材料消耗,查詢,連接各個相關資料,但........好用,不代表會叫貨>"<
客戶說 : 好好..你的excel寫的好,很好用,資料詳細,好計算,好查詢,不錯!!!
我想好用也不是給妳們計算別家的產品用的,
想在自己設計好的檔案裡,安裝日期一到就自動刪除指定的巨集,因為我有設專案屬性密碼,不知有設密碼還會不會執行,單純只為自己的檔案設置,別無搞他人檔案的念頭!
作者:
man65boy
時間:
2011-9-8 20:59
假使能日期一到打開活頁簿的同時,能自動解開VBAProject屬性密碼,刪除,在自動鎖密呢?可行嗎?
麻煩老師們給個意見!!!
作者:
GBKEE
時間:
2011-9-9 09:47
本帖最後由 GBKEE 於 2011-9-16 07:19 編輯
回復
5#
man65boy
VBAProject屬性有
密碼保護
,就無法刪除程式碼.
'活頁簿工作表,插入Excle 4.0巨集表,命名為"4.0"
'ThisWorkbook 中加入 Workbook_Open
Private Sub Workbook_Open()
Sheets("4.0").Visible = 2 '工作表深度隱藏
Dim i As Integer
If Sheets("4.0").Range("A1") = "" Then '啟動範本
Sheets("4.0").Range("A1") = Date '輸入日期
End If
End Sub
''''''''SHEET1 的CODE ''''''''''''
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Date - Sheets("4.0").Range("A1") >= 15 Then Exit Sub '加入此條件
End Sub
'存檔為範本給客戶
複製代碼
作者:
jackdream
時間:
2011-9-9 15:18
本帖最後由 jackdream 於 2011-9-9 16:10 編輯
有時給客戶的資料都為了方便,都會貼心的用一些實用性的巨集,好方便計算材料消耗,查詢,連接各個相關資料 ...
如果客戶將檔案設唯讀,或破解vba密碼,取出語法..這樣刪除巨集就沒作用了.
若不擔心上述問題(或者透過文字編輯器這類工具鎖住該檔案的vba編輯功能)
然後,在語法裡面設定一個日期,當日期一到時,即結束程式(或查詢功能失效),
不曉得是否也能達到您的目的?
例如:
Private Sub Workbook_Open()
If Date > "2011/9/8" Then ActiveWindow.Close '假如日期超過 9/8 即直接關閉檔案
End Sub
不一定要關閉檔案,可以換成無法查詢資料或其他語法.
作者:
man65boy
時間:
2011-9-10 00:12
感謝2位老師的回答,尤其是4.0巨集表竟然可如此的使用,真是另令人瞠目結舌阿!厲害~~
雖然不能刪除Sheet1裡的程式碼,不過以讓他自動的無法執行巨集,已經達到90%的目標了,真是太感謝了,
對了,在請教一下,在有4.0巨集表的檔案裡,如果在沒有VBAProject屬性密碼保護下,又不知4.0巨集表的名稱,如何把未知命名的4.0巨集表,從隱藏裡提
出顯現,在次請教老師們提供寶貴的意見。
作者:
GBKEE
時間:
2011-9-10 06:35
本帖最後由 GBKEE 於 2011-9-10 06:44 編輯
回復
9#
man65boy
Sub Ex()
For Each sh In ActiveWorkbook.Sheets
MsgBox sh.Name
Next
End Sub
複製代碼
HUNGCHILIN兄 要來站位置, 你可以參考他的發帖
作者:
man65boy
時間:
2011-9-10 09:03
回復
10#
GBKEE
GBKEE老師,實在太感謝你了,大師級的2招功夫,以讓不才小弟"受用不盡"了,想不倒4.0巨集表如此的好玩,以後一定會常追蹤老師的作品,欽佩!!!
作者:
HUNGCHILIN
時間:
2011-9-12 21:31
本帖最後由 HUNGCHILIN 於 2011-9-12 21:43 編輯
GB兄總是能在最快的時間內,提出最佳的答案,是最讓人佩服的
____________________________________________________
而關於這則我想了一陣子:
1.檔案再怎麼寫,只要於原始檔仍在,就會被破解,遇到高手很容易破除沒什麼用,VBP被鎖定後,程式仍是有辦法新增與刪除程式,但會被防毒程式認為是病毒,不是好方法
2. 4.0表,不啟用巨集就關閉檔案的方法在,2007以後版本,會失效
3.VBP鎖定下,只有SHEETA內的程式要刪? 這不就COPY SHEETA內容到新SHEET貼上,然後SHEETA刪除,存檔 就好了
應該不用破解VBP鎖定.
4. 小方案很多,若用SHEET 的方案,可用下列三種,
A.在AUTOOPEN() 加上一個IF THEN 日期到了就刪除下面範例的SHEET,存檔 就好了
[原創] 一個不錯的保護保密思維與構想 保護範例-包裝程式寫在工作表上然後執行程式
B.把程式寫在定義內然後定義隱藏起來.加上一個IF THEN 日期到了就刪除下面範例的定義,存檔 就好了
[原創] 一個不錯的保護保密思維與構想 保護範例-包裝程式寫在定義內然後執行程式
C.或者整個檔案自己刪除自己
使用一次即自動刪除 AND 使用30天後自動刪除
方法真的很多,但都無法避免,被破解,這是比較遺憾的地方
作者:
GBKEE
時間:
2011-9-16 07:31
回復
11#
HUNGCHILIN
4.0表,不啟用巨集就關閉檔案的方法在,2007以後版本,會失效
2007以後版本我沒用過(落伍了), 這是我的看法: 雖然不會關閉檔案 但也無法啟用巨集了.可算是達到樓主的目的.
作者:
oobird
時間:
2011-9-16 14:32
要如何在指定的日期到期時突破VBAProject屬性密碼保護,自動刪除Sheet1程式區的程式碼
前提是你要知道密碼,這樣依日期判斷並非難事
若不知密碼還須要破解手續,困難度較高,而且也不鼓勵。
作者:
brabus
時間:
2011-9-23 08:29
我也想學4.0巨集
可是大大說的都太深了
有沒有淺一點的東西啊
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)