Excel表格是我們工作中經(jīng)常用到的,而它往往涉及統(tǒng)計(jì)數(shù)據(jù)等敏感問題,因此,Excel表格的保護(hù)也是經(jīng)常遇到的問題,如何安全使用Excel呢?我們常用到的是Excel“工具”菜單提供的“保護(hù)工作表”和“保護(hù)工作簿”功能。有沒有其他方法呢?
用宏進(jìn)行“顯式”加密
在需要加密的Excel 表中,點(diǎn)擊[工具]→[宏]→[Visual Basic編輯器],打開“工程資源管理器”,雙擊該工作表,在右邊的是設(shè)置該表屬性的編輯窗口,單擊該窗口左上方的下拉列表框,選擇Worksheet,再從該窗口右上方的列表框中選擇Activate(激活)(如圖)。
添加如下代碼:(假設(shè)“123”為密碼,Sheet1為限制權(quán)限表格,Sheet2為工作簿中為任何適合的工作表)
Private Sub Worksheet_Activate()
Sheets("sheet1").Cells.Font.ColorIndex = 2 '設(shè)置文字顏色為白色
If Application.InputBox("請輸入密碼:") = 123 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
' 設(shè)置文字顏色為黑色
Else
MsgBox "密碼錯誤,即將退出!"
Sheets("sheet2").Select
End If
End Sub
每次當(dāng)你選擇該“加密”表的時(shí)候都會彈出對話框要求輸入密碼,正確則進(jìn)入該表(Sheet1),否則會選擇其他表(Sheet2)。
用宏進(jìn)行“隱式”加密
“顯式”加密,雖然可以讓沒有密碼的使用者無法看到“加密”表格,但是每次選擇該表格時(shí)都會彈出對話框,實(shí)在不方便而且給其他用戶一種被防范的不舒服感覺。于是筆者就想出了下面的“隱式”加密方法。假如要加密的是Sheet1,我們可以設(shè)置在Sheet2的“A1”單元格為密碼的輸入處。于是修改以上代碼如下:
Private Sub Worksheet_Activate()
Sheets("sheet1").Cells.Font.ColorIndex = 2'設(shè)置文字顏色為白色
If Sheets("sheet2").Cells(1, 1) = 123 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
' 設(shè)置文字顏色為黑色
End If
End Sub
設(shè)置好以后,只有Sheet2的(A1)單元格為密碼“123”時(shí)“加密”表Sheet1的內(nèi)容才顯示出來,否則就是透明的,神不知鬼不覺;所謂“隱式”。
“隱式”加密雖然保證了沒有密碼的用戶不能查看“加密”表格的內(nèi)容,但是不能保護(hù)其他用戶對其進(jìn)行修改。所以我們要綜合運(yùn)用上面所說的“保護(hù)表格”和“隱式加密”對要保密的表格進(jìn)行設(shè)置。
上面是筆者在實(shí)踐中綜合出來的加密經(jīng)驗(yàn),希望能給大家?guī)矸奖,也恭候大家的指點(diǎn)交流。