APP下载

基于EXCELVBA的数据加密方法探析

2018-10-09

郑州铁路职业技术学院学报 2018年3期
关键词:编辑器表单校验

郑 宾

(陕西铁路工程职业技术学院,陕西 渭南 714099)

Excel是Microsoft Office家族成员中一个功能强大、技术先进、使用方便的表格式数据综合管理和分析系统[1]。Visual Basic for Application(简称VBA)是新一代标准宏语言,基于Visual Basic for Windows发展起来,支持面向对象的程序设计语言。由于它具有直接应用Office套装软件的各项强大功能,其宏记录器可以很容易将日常工作转换为VBA。

工作中经常会涉及某些Excel工作簿的数据要保密,需要对其进行加密防止某些使用者看到,以免泄露表格信息,或者用户只能查看工作表数据但不能对其操作,有时候需要操作工作簿中的某些表或工作表中的某些内容。这样,针对不同的用户或工作人员,对工作簿的使用权限不一致,可以在Excel中采用命令实现上述的某一项单一功能,但有时人工操作菜单命令可能设置不全面或有误,就可以用VBA来解决这个问题。

1 实例分析

以某单位贷款表为例,该工作表属于单位机密不应该被所有人都看到。当这个表不想让其他不相关的人打开时,可以在保存时设置加密。创建好贷款表并输入完相关数据后,单击Excel2016主菜单上的“文件”命令,在当前的界面下有一个“保护工作簿”选项,点击后,出现下拉菜单,分别是“标记为最终状态”“用密码进行加密”“保护当前工作表”“保护工作簿结构”“限制访问”“添加数字签名”。“用密码进行加密”是指当用户在打开这个贷款表时,需要输入相应密码;“保护当前工作表”则在对当前表单下的单元格数据、行列进行操作时,需要输入相应密码。

对有些需要隐藏的内容,如某一行或一列,则可以将其隐藏起来[2]。在要隐藏的行或者列上右击鼠标,在弹出的菜单中单击“隐藏”即可实现隐藏功能。如果想要撤销隐藏,可以用鼠标选中隐藏所在的间隔两行或列,右键单击“取消隐藏”,即可清除隐藏的区域。

上面的方法主要通过菜单命令完成,死板且不能很好地区分权限,通过VBA进行数据加密,灵活且效果更好。

单击Excel主菜单上的“工具>宏>Visual Basic编辑器”选项以打开“Visual Basic编辑器”,编辑代码如下所示:

Sub Auto_Open()

Dim TempI As Integer

Dim TempJ As String

Dim TempMsgBox As

VbMsgBoxResult

TempI = 1

Rem 三次密码校验

Do While TempI <= 3

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

TempJ = InputBox(“请输入读取密码”,“校验”)

Rem 判断密码输入

If TempJ = "vba" Then

Exit Do

Else

TempMsgBox = MsgBox(“输入密码错误”, vbOKOnly, “警告”)

TempI = TempI + 1

End If

Loop

If TempI = 4 Then

TempMsgBox = MsgBox(“错误登陆”, vbOKOnly,“错误”)

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(“请输入普通权限密码”, “校验”) = "vba" Then

Sheets("Sheet1").Select

If Application.InputBox(“请输入完全权限密码”, “校验”) = "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(“密码输入错误”, vbOKOnly,“错误”)

Sheets("Sheet2").Select

End If

End Sub

编辑代码完毕后保存并退出“Visual Basic编辑器”,重新打开表单则可以看到有自动提示,如图1所示。当输入错误的密码的时候会弹出提示,当3次连续输入错误的密码则自动退出[3]。

图1 打开表单提示输入密码

当输入正确的打开表单密码后,就可以打开表单并进入,此时的用户权限为查看表单内容,但不能对表单进行任何操作。进入表单时,又需要输入权限密码以区分是哪个级别的用户,先需要输入普通权限密码,如图2所示。如果普通用户密码输入正确,则又需要输入完全权限密码,如图3所示。普通用户密码输入正确而完全权限密码输入错误,则不能访问某些数据,如图4所示。只有输入完整的完全权限密码才能保证修改、查看所有数据并进行更改,如图5所示。

图2 输入普通权限密码

图3 输入完全权限密码

图4 普通权限查看信息

图5 完全权限查看信息

2 总结与提高

在实际工作中,可以设置更多道“门槛”以完全区分出每个人不同的权限。同时在输入密码对话框中,输入的密码显示为明文,使得安全性不高,这里可以自己动手在“Visual Basic编辑器”中新建一个窗体来做一个输入对话框,在显示的时候用“*”代替将要显示的文字, 其代码如下:

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

猜你喜欢

编辑器表单校验
使用Excel朗读功能校验工作表中的数据
电子表单系统应用分析
司空见惯感觉烦 锁屏画面快走开
基于图表示和匹配的表单定位与提取
你距离微信创作达人还有多远?
车辆段收发车运行图编辑器的设计与实现
浅谈网页制作中表单的教学
炉温均匀性校验在铸锻企业的应用
电子式互感器校验方式研究
浅谈微电子故障校验