国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于EXCELVBA的數(shù)據(jù)加密方法探析

2018-10-09 08:38
關(guān)鍵詞:編輯器表單校驗(yàn)

鄭 賓

(陜西鐵路工程職業(yè)技術(shù)學(xué)院,陜西 渭南 714099)

Excel是Microsoft Office家族成員中一個(gè)功能強(qiáng)大、技術(shù)先進(jìn)、使用方便的表格式數(shù)據(jù)綜合管理和分析系統(tǒng)[1]。Visual Basic for Application(簡(jiǎn)稱VBA)是新一代標(biāo)準(zhǔn)宏語(yǔ)言,基于Visual Basic for Windows發(fā)展起來(lái),支持面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。由于它具有直接應(yīng)用Office套裝軟件的各項(xiàng)強(qiáng)大功能,其宏記錄器可以很容易將日常工作轉(zhuǎn)換為VBA。

工作中經(jīng)常會(huì)涉及某些Excel工作簿的數(shù)據(jù)要保密,需要對(duì)其進(jìn)行加密防止某些使用者看到,以免泄露表格信息,或者用戶只能查看工作表數(shù)據(jù)但不能對(duì)其操作,有時(shí)候需要操作工作簿中的某些表或工作表中的某些內(nèi)容。這樣,針對(duì)不同的用戶或工作人員,對(duì)工作簿的使用權(quán)限不一致,可以在Excel中采用命令實(shí)現(xiàn)上述的某一項(xiàng)單一功能,但有時(shí)人工操作菜單命令可能設(shè)置不全面或有誤,就可以用VBA來(lái)解決這個(gè)問(wèn)題。

1 實(shí)例分析

以某單位貸款表為例,該工作表屬于單位機(jī)密不應(yīng)該被所有人都看到。當(dāng)這個(gè)表不想讓其他不相關(guān)的人打開(kāi)時(shí),可以在保存時(shí)設(shè)置加密。創(chuàng)建好貸款表并輸入完相關(guān)數(shù)據(jù)后,單擊Excel2016主菜單上的“文件”命令,在當(dāng)前的界面下有一個(gè)“保護(hù)工作簿”選項(xiàng),點(diǎn)擊后,出現(xiàn)下拉菜單,分別是“標(biāo)記為最終狀態(tài)”“用密碼進(jìn)行加密”“保護(hù)當(dāng)前工作表”“保護(hù)工作簿結(jié)構(gòu)”“限制訪問(wèn)”“添加數(shù)字簽名”?!坝妹艽a進(jìn)行加密”是指當(dāng)用戶在打開(kāi)這個(gè)貸款表時(shí),需要輸入相應(yīng)密碼;“保護(hù)當(dāng)前工作表”則在對(duì)當(dāng)前表單下的單元格數(shù)據(jù)、行列進(jìn)行操作時(shí),需要輸入相應(yīng)密碼。

對(duì)有些需要隱藏的內(nèi)容,如某一行或一列,則可以將其隱藏起來(lái)[2]。在要隱藏的行或者列上右擊鼠標(biāo),在彈出的菜單中單擊“隱藏”即可實(shí)現(xiàn)隱藏功能。如果想要撤銷隱藏,可以用鼠標(biāo)選中隱藏所在的間隔兩行或列,右鍵單擊“取消隱藏”,即可清除隱藏的區(qū)域。

上面的方法主要通過(guò)菜單命令完成,死板且不能很好地區(qū)分權(quán)限,通過(guò)VBA進(jìn)行數(shù)據(jù)加密,靈活且效果更好。

單擊Excel主菜單上的“工具>宏>Visual Basic編輯器”選項(xiàng)以打開(kāi)“Visual Basic編輯器”,編輯代碼如下所示:

Sub Auto_Open()

Dim TempI As Integer

Dim TempJ As String

Dim TempMsgBox As

VbMsgBoxResult

TempI = 1

Rem 三次密碼校驗(yàn)

Do While TempI <= 3

Sheets("Sheet1").Cells.Font.ColorIndex = 2

TempJ = InputBox(“請(qǐng)輸入讀取密碼”,“校驗(yàn)”)

Rem 判斷密碼輸入

If TempJ = "vba" Then

Exit Do

Else

TempMsgBox = MsgBox(“輸入密碼錯(cuò)誤”, vbOKOnly, “警告”)

TempI = TempI + 1

End If

Loop

If TempI = 4 Then

TempMsgBox = MsgBox(“錯(cuò)誤登陸”, vbOKOnly,“錯(cuò)誤”)

Application.Quit

ThisWorkbook.Close (False)

End If

End Sub

Private Sub Worksheet_Activate()

Dim TempMsgBox As

VbMsgBoxResult

Sheets("Sheet1").Cells.Font.ColorIndex = 2

Range("A20").Select

If Application.InputBox(“請(qǐng)輸入普通權(quán)限密碼”, “校驗(yàn)”) = "vba" Then

Sheets("Sheet1").Select

If Application.InputBox(“請(qǐng)輸入完全權(quán)限密碼”, “校驗(yàn)”) = "vba" Then

Sheets("Sheet1").Cells.Font.ColorIndex = 0

Else

Sheets("Sheet1").Cells.Font.ColorIndex = 0

Range("A1:A50").Font.ColorIndex = 2

End If

Else

TempMsgBox = MsgBox(“密碼輸入錯(cuò)誤”, vbOKOnly,“錯(cuò)誤”)

Sheets("Sheet2").Select

End If

End Sub

編輯代碼完畢后保存并退出“Visual Basic編輯器”,重新打開(kāi)表單則可以看到有自動(dòng)提示,如圖1所示。當(dāng)輸入錯(cuò)誤的密碼的時(shí)候會(huì)彈出提示,當(dāng)3次連續(xù)輸入錯(cuò)誤的密碼則自動(dòng)退出[3]。

圖1 打開(kāi)表單提示輸入密碼

當(dāng)輸入正確的打開(kāi)表單密碼后,就可以打開(kāi)表單并進(jìn)入,此時(shí)的用戶權(quán)限為查看表單內(nèi)容,但不能對(duì)表單進(jìn)行任何操作。進(jìn)入表單時(shí),又需要輸入權(quán)限密碼以區(qū)分是哪個(gè)級(jí)別的用戶,先需要輸入普通權(quán)限密碼,如圖2所示。如果普通用戶密碼輸入正確,則又需要輸入完全權(quán)限密碼,如圖3所示。普通用戶密碼輸入正確而完全權(quán)限密碼輸入錯(cuò)誤,則不能訪問(wèn)某些數(shù)據(jù),如圖4所示。只有輸入完整的完全權(quán)限密碼才能保證修改、查看所有數(shù)據(jù)并進(jìn)行更改,如圖5所示。

圖2 輸入普通權(quán)限密碼

圖3 輸入完全權(quán)限密碼

圖4 普通權(quán)限查看信息

圖5 完全權(quán)限查看信息

2 總結(jié)與提高

在實(shí)際工作中,可以設(shè)置更多道“門(mén)檻”以完全區(qū)分出每個(gè)人不同的權(quán)限。同時(shí)在輸入密碼對(duì)話框中,輸入的密碼顯示為明文,使得安全性不高,這里可以自己動(dòng)手在“Visual Basic編輯器”中新建一個(gè)窗體來(lái)做一個(gè)輸入對(duì)話框,在顯示的時(shí)候用“*”代替將要顯示的文字, 其代碼如下:

Private Sub TextBox1_Change()

Dim TempI As Integer

Dim TempValue As String

TempValue= TempValue & TextBox1.Value

For TempI=1 To Len(TempValue) Step 1

TextBox1. Value= TextBox1. Value & “*”

Next TempI

End Sub

猜你喜歡
編輯器表單校驗(yàn)
使用Excel朗讀功能校驗(yàn)工作表中的數(shù)據(jù)
電子表單系統(tǒng)應(yīng)用分析
司空見(jiàn)慣感覺(jué)煩 鎖屏畫(huà)面快走開(kāi)
基于圖表示和匹配的表單定位與提取
你距離微信創(chuàng)作達(dá)人還有多遠(yuǎn)?
車輛段收發(fā)車運(yùn)行圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)
淺談網(wǎng)頁(yè)制作中表單的教學(xué)
爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
電子式互感器校驗(yàn)方式研究
淺談微電子故障校驗(yàn)