排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
用密码保护代码不被非法执行
用密码保护代码不被非法执行
VBA语言専攻
2022-08-24
70
【分享成果,随喜正能量】 很认同莫泊桑的一段话:“人如果能坚定自己内心所想,不攀比,不盲从,不被他人影响,一门心思过好自己的日子,就会快乐许多。”。
《V
BA
之Excel应用》是非常经典的,是我推出的第七套教程,定位于初级。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用E
XCEL
工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“
VBA
之E
XCEL
应用”:
用密码保护代码不被非法执行
第八节
如何保护自己的V
BA
代码
大家好,我们继续V
BA
的学习,这讲我们讲解如何保护自己的V
BA
代码,虽然保护措施只是相对的,但我们也有必要了解好掌握一些这方面的知识,以便可以让我们的代码不被查看和执行。
1
锁定代码不被查看
为了让代码不被他人查看,我们可以锁定工程:
1)在V
BE
窗口,我们点击“工具”,“
VBAProject
属性”:
2)在弹出的对话框中选择“保护”,勾选“查看时锁定工程”全的复选框,在“查看工程属性的密码”中输入自己的密码,最后点击“确定”。
我们保存一下文件后关闭,再次打开,进入V
BE
窗口:
如果我们想查看代码,就要录入密码了,如下的界面:
只有我们录入了正确的密码才能看到工程中的代码。
2
用密码保护代码不被非法执行
上面的方案只是保证了代码不被查看(除非您知道密码),仍然可以通过单击运行按钮来执行代码。那么如何保护代码不被非法地执行呢?我们可以通过下面的方案:
在我们运行的过程前加入密码校验,如果密码不对则程序不被执行,如下面的过程:
Sub mynzE()
'密码校验部分
Dim
password As Variant
password
= Application.InputBox("请输入程序运行密码", "Password Protected")
Select
Case password
Case
Is = False
'do
nothing
Exit
Sub
Case
Is = "CP1972"
MsgBox
"密码正确,可以运行程序!"
Case
Else
MsgBox
"密码错误,不可以非法运行程序!"
Exit
Sub
End
Select
'进入程序的主体部分
Range("b5")
= 0
For
i = 1 To 1000
Range("b5")
= Range("b5") + i
Next
MsgBox
"ok!"
End Sub
代码截图:
代码解读:
1)上面的代码分为两部分,一部分是密码校验,一部分是程序的主体,我们这讲主要讲解密码校验部分。
2)
Dim password As Variant
password
= Application.InputBox("请输入程序运行密码", "Password Protected")
以上代码是首选声明一个变量
password
是
Variant
类型的数据变量。
Variant
类型的数据是变体型,这在以后还会讲解到。
然后会利用一个
InputBox
对话框让用户录入密码。
3)在校验用户录入的密码时用了一个
Select Case….End Select
的语句,这个语句中会列举到用户录入的各种情况。
①
没有录入,直接取消时
Case Is = False
'do
nothing
Exit
Sub
直接退出程序
Exit Sub
。
l
宏使用
Application对象的InputBox方法。如果用户单击
取消(
Cancel
)
,这个方法返回False,并且什么也不发生(InputBox消失)。
②
录入正确
Case Is = "CP1972"
MsgBox
"密码正确,可以运行程序!"
当密码正确,弹出一个对话框
"密码正确,可以运行程序!"
③
其他情况:
Case Else
MsgBox
"密码错误,不可以非法运行程序!"
Exit
Sub
当密码不正确,弹出一个对话框
"密码错误,不可以非法运行程序!"
然后退出程序。
4)由于代码是按顺序执行的,在上述代码执行过程中,如果没有
Exit Sub
(退出程序),那么说明密码校验是正确的,代码将继续执行,开始程序主体部分代码的运行。
下面我们来看一下代码的执行效果,我们仍旧建立一个运行按钮,关联上述过程,点击运行:
如果代码错误:
密码正确:
程序运行结果:
今日内容回向:
1
) 如何保护代码不被查看?
2
) 如何保护代码不被运行?
3)
如果只是保护代码不被运行,没有保护代码不被查看,有何不妥?
本讲内容参考程序文件:工作簿0
1
.
xlsm
我2
0
多年的V
BA
成果全在下面的资料中:
【分享成果,随喜正能量】人生最大的失败是骄傲自大,人生最大的无知是欺骗,人生最大的悲哀是嫉妒。
。
msgbox
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨