vbaexcel加密码
① EXCE如何用VBA代码加入启动时对所有工作表加密,并设指定密码
通过代码对excel代码进行加密即可:
1、打开您需要破解保护密码的Excel文件;
2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:aa;
3、停止录制(这样得到一个空宏);
4、依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮;
5、删除窗口中的所有字符(只有几个),替换野贺为下面的内容;
Dim历脊信xAsInteger
Forx=1ToSheets.Count
Sheets(x).Protect"123"
Nextx
hisWorkbook.Protect"肢轮123"
② excel2010vba加密的方法
在 Excel 中除了可以利用设置外还可以利用VBA编程进行加密,利用VBA编程可以令加密更加严谨,下面是由我分享的excel2010 vba加密的 方法 ,希望对你有用。
excel2010 vba加密的方法利用VBA加密步骤1:对想发布自己的Excel VBA的开发者来说,Excel VBA本身不提供VBA代码的加密,封装。目前比较最可靠的Excel VBA代码加密的方法,就是把VBA代码编译成DLL(动态链接库文件),在VBA中调用,从而实现VBA代码的加密,封装,方便和Excel文件整合发布出去。DLL文件基本没法被破解,除此之外其他的VBA加密方法,都可以被轻易破解。用户只需要你的Excel文件,和这个dll文件就够了,不必安装其他任何程序。
利用VBA加密步骤2:编译成DLL文件其实很简单。机子上安装Visual Basic 6.0就可以编译成dll文件了,Visual Basic .Net反倒有点麻烦。Visual Basic通过OLE(对象链接引擎)技术调用Excel以及其中的对象。
利用VBA加密步骤3:总的来说,VBA代码只要做一些简单修改就可以了。主要是对Excel对象的引用,不然VB不能识别vba代码中的对象。比如如下的VBA代码
windows(workbook1).activate
range("L50")=1
直接放进VB中编译成Dll就会有问题,因为VB不能直接识别range对象。
需要添加几行简单的代码来告诉vb怎么引用excel中的这些对象:
dim xlapp as excel.applicatiion
dim xlbook as excel.workbook
dim xlsheet as excel.worksheet
set xlapp=getobject(,"excel.application)
set xlbook=getobject(xxx)
set xlsheet=xlbook.worksheets(1)
利用VBA加密步骤4:然后就照搬你原有的vba代码,但是前面加上对象引用:
xlsheet.range("L50")=1
利用VBA加密步骤5:对VBA代码做这样修改,在VB中调试通过,就可以成功的把多个sub子程序全部编译封装在一个单独的DLL文件了。以后直接在VBA中引用这个DLL文件中的各个sub子程序。原来大段的VBA代码全部被封装在DLL文件中,对用户不可见。
利用VBA加密步骤6:开发者还可以在程序运行前显示软件的版权信息,设置密码。因为这些也封装在DLL文件中,所以用户没法破解。
EXCEL中如何控制每列数据的长度并避免重复录入1、用数据有效性定义数据长度。
用鼠标选定你要输入的数据范围,点"数据"->"有效性"->"设置","有效性条件"设成"允许""文本长度""等于""5"(具体条件可根据你的需要改变)。
还可以定义一些提示信息、出错警告信息和是否打开中文输入法等,定义好后点"确定"。
2、用条件格式避免重复。
选定A列,点"格式"->"条件格式",将条件设成“公式=COUNTIF($A:$A,$A1)>1”,点"格式"->"字体"->"颜色",选定红色后点两次"确定"。
这样设定好后你输入数据如果长度不对会有提示,如果数据重复字体将会变成红色。
③ 求教怎么用WINHEX给EXCEL VBA宏加密
用WINHEX给EXCEL VBA宏加密的方法:
一、为VBA工程设置密码
限制别人查看VBA源代码的一个简单办法就是设置VBA工程密码或设置工程不可查看。方法如下:
1、按Alt+F11,在VBE窗口在,单击“工具—VBAproject属性”,打开“VBAproject属性”对话框。
2、单击“VBAproject属性”对话框中的“保护”选项卡。如图1所示,选中“查看时锁定工程”复选框。在“密码”框中输入保护密码,在“确认密码”框中再输入一次密码,然后单击“确定”,关闭“VBAproject属性”对话框。
3、保存并关闭工作簿。
当你再打开该工作簿后,打开VBE窗口时,就不再显示VBA的窗体、模块等对象,看不到VBA源代码了。
★提示:这种密码保护很容易破解。★
二、设置工程不可查看
限制别人查看VBA源代码的方法就是设置“工程不可查看”。方法如下:
共享级锁定:先对Excel文件的“VBAProject工程”进行密码保护(参考“为VBA工程设置密码”)。再打开要保护的文件,单击“工具_保护_保护并共享工作簿_以追踪修订方式共享”,如图2所示,输入保护密码再保存文件。当你得新打开“VBAProject”工程属性时,就将会提示:“工程不可看!”
破坏型锁定:用16进制编辑工具(如WinHex等)打开Excel文件,查找定位以下地方: ID="{00000000-0000-0000-0000-000000000000}"(注:实际显示不会全部为0),此时,你只要将其中的字节随便修改一下即可。
★提示:在修改前最好做好你的文档备份。当然这种方法也可破解的,因为加密总是相对。★
三、防止强制中断方式查看VBA代码
有时,我们可以通过运行程序,然后在运行的过程中强制按“Ctrl+Break”强制中断程序运行,进VBE编辑器查看源码。为此,我们可以在工作簿的open事件中加入以下语句来屏蔽“Ctrl+Break”组合键。
Application.EnableCancelKey = xlDisabled
如果要恢复“Ctrl+Break”组合键,则用下面的语句。
Application.EnableCancelKey = xlInterrupt
四、禁用宏则关闭Excel文件
当打开含有宏的文件时,如果“禁用宏”并打开文件后,所有编辑的VBA程序将失效。如何当用户打开Excel文件并禁用宏时,让文件自动关闭呢?
我们可以通过调用Excel4.0版(Excel的一个老版本)的宏命令来解决这个问题。因为“禁用宏”功能无法禁用4.0版本的宏。当您设置完成,再打开文件并点击禁用宏时,系统就会弹如下图所示提示信息,单击“确定”后文件就会自动关闭。
禁用宏后的提示信息
设置步骤和使用方法:
(1)打开要设置的文件,在VBE编辑器中添加一个模块。写入以下代码:
Function NoRunMacro () ’A3单元格中的字符
End Function
(2)在任一个工作表标签上单元格右键,执行“插入”命令打开如下图所示对话框,在常用选项卡中选取“MS Excel4.0宏表”项,然后单击“确定”按钮,在当前工作簿中就会新建一个默认名Macro1的“宏表”,更改表名为“宏表1”
在宏表的以下单元格中输入公式:
(3)逐个选取工作簿中其他工作表,然后执行【插入】/【名称】/【定义】命令,打开【定义名称】对话框。在“在当前工作簿中的名称”框中输入:工作表名称+Auto_Activate。如下图所示在Sheet1工作表中打开【定义名称】对话框,定义的名称就为:Sheet1!Auto_Activate。
然后在引用位置文本框中输入:=宏表1!$A$2。
★提示:对于一个工作表数量较多的工作表逐个设置会很麻烦。所以这时可以只需为其中一个设置名称,但要保障“当打开工作簿时,必需是设置名称的工作表处于选取状态”★
五、限制工作簿的使用次数,超过次数就自我删除
限制工作簿的使用次数,超过次数就自我删除,也不失为保护作品的一种好方法。但这种方法需要修改注册表。
有关程序的代码如下:
Private Sub Workbook_Open()
Dim counter As Long, term As Long, chk
chk = GetSetting("hhh", "budget", "使用次数", "")
If chk = "" Then
term = 50 '限制使用50次
MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超过次数将自动销毁!", vbExclamation
SaveSetting "hhh", "budget", "使用次数", term
Else
counter = Val(chk) - 1
MsgBox "你还能使用" & counter & "次,请及时注册!", vbExclamation
SaveSetting "hhh", "budget", "使用次数", counter
If counter <= 0 Then
DeleteSetting "hhh", "budget", "使用次数"
killme
End If
End If
End Sub
Public Sub killme()
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ThisWorkbook.Close False
End Sub
将上述程序复制到工作簿的ThisWorkbook对象模块中,保存文件即可。