Board logo

標題: [分享] Excel的安全性設定高時,活頁簿無法開啟 . 可保護活頁簿的隱密性. [打印本頁]

作者: GBKEE    時間: 2010-12-29 08:37     標題: Excel的安全性設定高時,活頁簿無法開啟 . 可保護活頁簿的隱密性.

本帖最後由 GBKEE 於 2011-3-27 07:28 編輯

作法: 活頁簿加入 Excel 4.0 巨集表
作者: GBKEE    時間: 2011-3-22 08:10

活頁簿 插入Excle 4.0巨集 工作表
巨集安全性 設定最高時 無法開啟 此活頁簿
自訂密碼以維護檔案的隱密

[attach]5088[/attach]

Private Sub UserForm_Initialize()
    Dim I As Integer, R As Range
  '  Application.Visible = False    '隱藏 Excel  ->正常使用時請解除前面的注解 " ' "
    表單頭
    Check_time = 0
    Set R = Sheet1.Range("使用者").CurrentRegion.Offset(1)   '"使用者" 已在工作表中定義名稱
    Set R = R(1).Resize(R.Rows.Count - 1, R.Columns.Count)
    For I = 1 To 3
        Me.Controls("Label" & I).Caption = Sheet1.Range("使用者").Cells(1, I)
    Next
    Me.ComboBox1.ColumnCount = 1
    Me.ComboBox1.List = R.Value
End Sub
作者: HUNGCHILIN    時間: 2011-3-26 22:55

本帖最後由 HUNGCHILIN 於 2011-3-27 12:37 編輯

回復 2# GBKEE


這則是GB兄給我的靈感
作出來的檔案
讓人家不知道,表單按鈕是指定到那個巨集
看了就知道重點


說明:
表單按鈕指定巨集時,我們使用定義來取代指定的巨集
再把定義隱藏起來
[attach]5130[/attach]
[attach]5131[/attach]
讓人家不知道您的表單按紐是指定到那個巨集
[attach]5128[/attach]
作者: GBKEE    時間: 2011-3-27 07:25

回復 3# HUNGCHILIN
真是有創意
回復 4# chin15
版主的意思是巨集安全性設為高時仍有辦法執行巨集嗎
不是的
活頁簿 插入Excle 4.0巨集 工作表,當巨集安全性設為高時,就無法開啟此活頁簿.
可保護活頁簿的隱密性.
作者: HUNGCHILIN    時間: 2011-3-31 23:54

本帖最後由 HUNGCHILIN 於 2011-4-1 22:00 編輯

以下這則最重要的觀念在於

1.可以用定義取代物件的"指定巨集"

2.既然可以用定義就可以用公式函數作許多判斷,而不用寫在巨集中,可以多一種指定與判斷分流的寫法

簡單寫法如下:

[attach]5206[/attach]
呵呵臨時作的範例,造成錯務已更新檔案
作者: GBKEE    時間: 2011-4-1 14:23

回復 5# HUNGCHILIN
檔案中的名稱 使用者 的參照跑掉了 =Sheet1!#REF!
修正=Sheet1!$A$2 可正常看到範例
執行下列程序  可知 HUNGCHILIN 版主的巧思
  1. Sub Ex()
  2.     Dim a
  3.     For Each a In ThisWorkbook.Names
  4.         a.Visible = True
  5.     Next
  6. End Sub
複製代碼

作者: chiata    時間: 2013-1-21 17:01

回復 5# HUNGCHILIN

請問阿吉大所謂的"定義"是只指"插入"->"名稱"->"定義"嗎?
我試著操作,定義儲存格A1名稱為test,並在"指定巨集"那直接輸入名稱檔案名.xls!test,如圖...謝謝。
[attach]14026[/attach]

PS.好不容易積分到了可以下載附件,開了幾個各位前輩的作品已經讓我學到很多,感謝。
作者: HUNGCHILIN    時間: 2013-1-21 17:44

本帖最後由 HUNGCHILIN 於 2013-1-21 20:16 編輯

對只是"插入"->"名稱"->"定義"
範例檔案內
我沒有用第3個巨集做判斷.但為什麼 在A2輸入1與輸入2時 按按鈕時會自動判斷使用不同的巨集?

答案:
檔案內有定義名稱 TEST=IF(Sheet1!$A$2=1,程式.AAAA,程式.bbbb)
再把TEST定義隱藏.欲觀看此定義.請利用#6的代碼顯示此TEST定義

可看到檔案內只有兩個巨集
Private Sub AAAA()
MsgBox "A"
End Sub
Private Sub bbbb()
MsgBox "b"
End Sub

這個範例是在說.使用公式也可以讓按鈕使用AAAA或BBBB巨集 不用用到第三個巨集
作者: chiata    時間: 2013-1-21 23:13

回復 8# HUNGCHILIN


阿吉大,我誤會了,本來我是定義test參照到某個儲存格,此儲存格的公式=IF(Sheet1!$A$2=1,程式.AAAA,程式.bbbb),
原來是參照那邊就要=IF(Sheet1!$A$2=1,程式.AAAA,程式.bbbb),已經可以執行,又長見識了!謝謝。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)