Excel表格是我們工作中經常用到的,而它往往涉及統(tǒng)計數(shù)據(jù)等敏感問題,因此,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的內容才顯示出來,否則就是透明的,神不知鬼不覺;所謂“隱式”。
“隱式”加密雖然保證了沒有密碼的用戶不能查看“加密”表格的內容,但是不能保護其他用戶對其進行修改。所以我們要綜合運用上面所說的“保護表格”和“隱式加密”對要保密的表格進行設置。
上面是筆者在實踐中綜合出來的加密經驗,希望能給大家?guī)矸奖悖补Ш虼蠹业闹更c交流。