查看單個文章
舊 2003-12-12, 02:23 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 辦公寶典:Excel工作表的保護大法

  Excel表格是我們工作中經常用到的,而它往往涉及統計資料等敏感問題,因此,Excel表格的保護也是經常遇到的問題,如何安全使用Excel呢?我們常用到的是Excel「工具」表單提供的「保護工作表」和「保護活頁簿」功能。有沒有其他方法呢?


  用巨集進行「顯式」加密


  在需要加密的Excel 表中,點擊[工具]→[巨集]→[Visual Basic編輯器],開啟「工程檔案總管」,雙按該工作表,在右邊的是設定該表內容的編輯視窗,按下該視窗左上方的下拉列表框,選項Worksheet,再從該視窗右上方的列表框中選項Activate(啟動)。





圖為用巨集進行「顯式」加密


  增加如下程式碼:(假設「123」為密碼,Sheet1為限制權限表格,Sheet2為活頁簿中為任何適合的工作表)


  Private Sub Worksheet_Activate()


  Sheets("sheet1").Cells.Font.ColorIndex = 2 '設定文字顏色為白色


  If Application.InputBox("請輸入密碼:") = 123 Then


  Range("A1").Select


  ActiveSheet.Cells.Font.ColorIndex = 56


  ' 設定文字顏色為黑色


  Else


  MsgBox "密碼錯誤,即將退出!"


  Sheets("sheet2").Select


  End If


  End Sub


  每次當你選項該「加密」表的時候都會彈出對話視窗要求輸入密碼,正確則進入該表(Sheet1),否則會選項其他表(Sheet2)。


  用巨集進行「隱式」加密


  「顯式」加密,雖然可以讓沒有密碼的使用者無法看到「加密」表格,但是每次選項該表格時都會彈出對話視窗,實在不方便而且給其他用戶一種被防範的不舒服感覺。於是筆者就想出了下面的「隱式」加密方法。假如要加密的是Sheet1,我們可以設定在Sheet2的「A1」單元格為密碼的輸入處。於是修改以上程式碼如下:


  Private Sub Worksheet_Activate()


  Sheets("sheet1").Cells.Font.ColorIndex = 2'設定文字顏色為白色


  If Sheets("sheet2").Cells(1, 1) = 123 Then


  Range("A1").Select


  ActiveSheet.Cells.Font.ColorIndex = 56


  ' 設定文字顏色為黑色


  End If


  End Sub


  設定好以後,只有Sheet2的(A1)單元格為密碼「123」時「加密」表Sheet1的內容才顯示出來,否則就是透明的,神不知鬼不覺;所謂「隱式」。


  「隱式」加密雖然保證了沒有密碼的用戶不能檢視「加密」表格的內容,但是不能保護其他用戶對其進行修改。所以我們要綜合運用上面所說的「保護表格」和「隱式加密」對要保密的表格進行設定。


  上面是筆者在實踐中綜合出來的加密經驗,希望能給大家帶來方便,也恭候大家的指點交流。

 文/尹慶超
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3203 次