EXCEL为VBA工程设置密码
VBA 中的工作表保护与密码设置方法

VBA 中的工作表保护与密码设置方法在使用 VBA(Visual Basic for Applications)编程时,保护工作表是确保数据安全和防止非法更改的重要一环。
通过设置工作表保护密码,只有输入正确密码的用户才能对工作表进行修改或操作。
本文将介绍 VBA 中的工作表保护与密码设置方法,帮助您更好地控制工作表的访问权限。
1. 工作表保护基础知识在开始介绍 VBA 中的工作表保护与密码设置之前,我们先来了解一些基础知识。
工作表是 Excel 中最基本的组成单位之一,它可以包含各种类型的数据。
通过保护工作表,我们可以防止其他人对其进行非法修改、删除或隐藏。
在 Excel 中,可以通过以下几种方式保护工作表:- 工作表保护:通过设置密码保护工作表,只有输入正确的密码才能对工作表进行修改。
- 单元格保护:通过设置单元格保护属性,可以禁止对某些单元格进行编辑或者限制输入的数据类型。
- 结构保护:通过结构保护,可以防止其他人修改工作表的结构,包括添加、删除或移动工作表。
2. VBA 中的工作表保护方法现在,让我们来看看如何在 VBA 中保护工作表。
2.1. 工作表保护要保护工作表,可以使用 `Protect` 方法。
下面是一个示例:```vbSub ProtectWorksheet()ActiveSheet.Protect Password:="mypassword"End Sub```在上述示例中,我们使用 `Protect` 方法保护了当前活动工作表,设置了密码为"mypassword"。
通过运行这段代码,工作表将被保护,并且只有输入正确密码的用户才能修改工作表。
2.2. 工作表解除保护如果需要解除对工作表的保护,可以使用 `Unprotect`方法。
如下所示:```vbSub UnprotectWorksheet()ActiveSheet.Unprotect Password:="mypassword"End Sub```通过运行上述代码,工作表的保护将被解除,可以自由地对其进行修改和操作。
excel2007利用vba设置密码的教程

excel2007利用vba设置密码的教程
在Excel中录入好重要数据以后多需要进行设置密码保护,如果用到VBA加密的话,就会更加严谨、安全。
接下来是店铺为大家带来的excel2007利用vba设置密码的教程,供大家参考。
excel2007利用vba设置密码的教程:
VBA设置密码步骤1:打开Excel2007启用宏的Excel文件
VBA设置密码步骤2:同时按下ALT+F11键,打开VBA编辑器窗口。
VBA设置密码步骤3:查看对应的代码窗口,左侧VBA工程PROJECT属性框中对应相应的SHEET表或者模块。
VBA设置密码步骤4:点击对应的SHEET表或者模块名称,鼠标右键放在其上,选择VBAPROJECT属性。
VBA设置密码步骤5:在弹出的VBAPROJECT工程属性窗口中-保护选项卡-选中查看时锁定工程,“查看工程属性的密码”内输入自己要设定的密码。
VBA设置密码步骤6:点击确认,然后点击文件工具栏内的保存按钮。
VBA设置密码步骤7:下次打开Excel文件时再同时按下ALT+F11进入VBA代码编辑器,鼠标左键双击左侧VBA工程中的VBAPROJECT文件名称,弹出VBAPROJECT密码输入窗口,输入密码才可进入,否则无法查看工程密码,呵呵。
如何利用VBA实现Excel数据加密与解密

如何利用VBA实现Excel数据加密与解密在Excel中,数据加密与解密是非常重要的功能,可以保护敏感数据的安全性。
VBA(Visual Basic for Applications)是一种编程语言,可以在Excel中编写宏来实现各种功能。
利用VBA编写代码可以实现Excel数据的加密与解密操作,本文将介绍如何利用VBA实现Excel数据的加密与解密。
首先,我们需要创建一个新的Excel工作簿,并通过VBA 编辑器添加一个新的模块。
在模块中编写以下代码:```VBAPrivate Sub EncryptData(ByVal rng As Range, ByVal password As String)rng.Formula = "=ENCRYPT.DECRYPT(" & rng.Address & "," & """" & password & """" & ",TRUE)"End SubPrivate Sub DecryptData(ByVal rng As Range, ByVal password As String)rng.Formula = "=ENCRYPT.DECRYPT(" & rng.Address & "," & """" & password & """" & ",FALSE)"End Sub```上述代码中,`EncryptData`是加密数据的函数,接受两个参数:`rng`是要加密的数据范围,`password`是加密密码。
Excel“工程不可查看”及VBA工程密码破解。

一、Excel“工程不可查瞧”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。
今天我对一个Excel宏编程中进行日期限制进行了破解。
方法一(共用级锁定)1、先对excel档进行一般的vbaproject”工程密码保护。
2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。
完成後,当您打开“vbaproject”工程属性时,就将会提示∶“工程不可瞧!”方法二(推荐,破坏型锁定)用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做、、、、、、用以上软体打开excel档,查找定位以下地方∶id="{00000000-0000-0000-00000}" 注∶实际显示不会全部为0 此时,您只要将其中的位元组随便修改一下即可。
保存再打开,就会发现大功告成!当然,在修改前最好做好您的文档备份。
至於恢复只要将改动过的地方还原即可(只要您记住了呵呵)。
破解方面,有网友说将CMG=,DPB=与GC=后的"="替换为"、"也可以的,我已测试过的确可以,这样更省事点。
用16进制编辑工具,如winhex、ultraedit-32打开X、xls文件,查找ID=、、、、、、, 或到文件尾查瞧,找到即可。
改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常瞧到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据就是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时您就可以瞧瞧那些就是被隐藏的了,很多时候打开就是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()Worksheets("这里为您要显示的工作表名称")、Visible = TrueEnd Sub关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选您要您破解工程密码的EXCEL文件>>再按F5执行即可、Private Sub VBAPassword()'您要解保护的Excel文件路径= Application、GetOpen("Excel文件(*、xls & *、xla & *、xlt),*、xls;*、xla;*、xlt", , "VBA破解")If Dir() = "" ThenMsgBox "没找到相关文件,清重新设置。
VBA 中的工作表保护与隐藏应用技巧

VBA 中的工作表保护与隐藏应用技巧工作表保护与隐藏的应用技巧在VBA(Visual Basic for Applications)中可以大大提高Excel的数据管理效率。
在进行数据编辑和处理时,有时需要保护某些工作表,以防止他人进行误操作或者更改某些重要的数据。
另外,有时又需要隐藏某些工作表,以保护敏感信息或者简化用户界面。
本文将介绍几种常见的VBA中的工作表保护与隐藏的应用技巧。
首先是工作表保护的应用技巧。
通过在VBA中使用工作表保护功能,我们可以限制对工作表的更改权限,并提高数据的安全性。
以下是一些实用的工作表保护应用技巧:1. 设置工作表保护密码:在VBA中可以使用`Protect`方法来设置工作表保护密码。
例如,使用下面的代码将某个工作表设置为只允许选择和格式化,密码为"123456":```vbaWorksheets("Sheet1").Protect Password:="123456", UserInterfaceOnly:=True, AllowFormattingCells:=True```这样,其他人将无法对该工作表进行编辑和更改,只能选择和格式化单元格。
2. 解除工作表保护:如果需要对已经保护的工作表进行修改,可以使用`Unprotect`方法来解除保护。
例如,使用下面的代码解除对某个工作表的保护:```vbaWorksheets("Sheet1").Unprotect Password:="123456"```注意,解除保护时需要输入正确的密码。
3. 指定允许编辑的区域:有时候我们希望只允许某些区域进行编辑,而其他区域保持锁定。
可以使用`EnableSelection`方法来实现这一功能。
例如,使用下面的代码将某个工作表的A1:B5区域设置为允许编辑:```vbaWorksheets("Sheet1").EnableSelection = xlUnlockedCellsWorksheets("Sheet1").Range("A1:B5").Locked = False```这样,只有A1:B5区域的单元格可以进行编辑,其他单元格将被锁定。
EXCEL为VBA工程设置密码

EXCEL为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版本的宏。
当您设置完成,再打开文件并点击禁用宏时,系统就会弹如下图所示提示信息,单击“确定”后文件就会自动关闭。
如何在VBA中处理Excel的保护和加密

如何在VBA中处理Excel的保护和加密VBA(Visual Basic for Applications)是一种用于自动化任务和处理数据的编程语言,它广泛应用于Excel等Microsoft Office套件中。
在Excel中处理保护和加密功能可以帮助我们保护数据的安全性,并确保只有授权人员可以进行编辑和访问。
本文将介绍如何在VBA中处理Excel的保护和加密,以保障数据的安全性。
首先,我们将讨论如何在VBA中处理Excel文档的保护操作。
Excel提供了几种不同的保护选项,包括工作表保护、工作簿保护和密码保护。
要在VBA中对工作表进行保护,可以使用`Protect`方法。
以下是一个简单的例子,演示了如何对工作表进行保护:```vbaSub ProtectWorksheet()Worksheets("Sheet1").Protect Password:="password"End Sub```上述代码中,`Protect`方法可用于保护指定的工作表。
你需要将"Sheet1"替换为你所需保护的工作表名称,并设置一个密码。
这将确保工作表被保护,并且需要密码才能对其进行修改或编辑。
要对整个工作簿进行保护,可以使用`Protect`方法。
以下是一个简单的例子,演示了如何对工作簿进行保护:```vbaSub ProtectWorkbook()ActiveWorkbook.Protect Password:="password"End Sub```上述代码中,`Protect`方法用于保护当前活动的工作簿。
你可以设置一个密码来确保工作簿被保护起来,并且只能由授权人员访问和修改。
使用密码保护的Excel文件可以在打开时弹出密码输入框,要求输入正确的密码才能打开。
要在VBA中实现这一功能,可以使用`Unprotect`和`Protect`方法。
excel2010vba加密的方法

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).activaterange("L50")=1直接放进VB中编译成Dll就会有问题,因为VB不能直接识别range对象。
需要添加几行简单的代码来告诉vb怎么引用excel中的这些对象:dim xlapp as excel.applicatiiondim xlbook as excel.workbookdim xlsheet as excel.worksheetset 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 文件了。
Excel VBA命令大全

本示例为设置密码窗口 (1) If Application.InputBox("请输入密码:") = 1234 Then [A1] = 1 '密码正确时执行 Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码 End If本示例为设置密码窗口 (1) X = MsgBox("是否真的要结帐?", vbYesNo) If X = vbYes Then Close本示例为设置工作表密码ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码 '本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
For Each w In Workbooks If Then w.Close SaveChanges:=True End If Next w '每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
Application.WindowState = xlMaximized '本示例显示活动工作表的名称。
MsgBox "The name of the active sheet is " & '本示例保存当前活动工作簿的副本。
ActiveWorkbook.SaveCopyAs "C:/TEMP/XXXX.XLS" '下述过程激活工作簿中的第四张工作表。
Sheets(4).Activate '下述过程激活工作簿中的第1张工作表。
Worksheets(1).Activate '本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改。
Excel最常用的“宏”修改保护密码

Excel最常用的“宏”修改保护密码方法:1\打开文件2\工具---宏----录制新宏---输入名字如:aa3\停止录制(这样得到一个空宏)4\工具---宏----宏,选aa,点编辑按钮5\删除窗口中的所有字符(只有几个),替换为下面的内容:6\关闭编辑窗口 7\工具---宏-----宏,选AllInternalPasswords,运行,确定7\弹窗中的英文大写就是密码(可能与原密码不一致,效果一样)内容如下:Public Sub AllInternalPasswords()' of workbook structure / windows passwords and for multiple passwords 'Const DBLSPACE As String = vbNewLine & vbNewLineConst AUTHORS As String = DBLSPACE & vbNewLine & _Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _DBLSPACE & "Also, remember that the password was " & _"put there for a reason. Don't stuff up crucial formulas " & _"or data." & DBLSPACE & "Access and use of some data " & _"may be an offense. If in doubt, don't."Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _"Proceeding to unprotect sheets." & AUTHORS & VERSIONConst MSGTAKETIME As String = "After pressing OK button this " & _ "will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _"passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSION Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _ "Note it down for potential future use in other workbooks by " & _ "the same person who set this password." & DBLSPACE & _ "Now to check and clear other passwords." & AUTHORS & VERSION Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ "password set." & DBLSPACE & "The password found was: " & _ DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _ "future use in other workbooks by same person who " & _"set this password." & DBLSPACE & "Now to check and clear " & _ "other passwords." & AUTHORS & VERSION"protected with the password that was just found." & _ ALLCLEAR & AUTHORS & VERSION & REPBACKDim w1 As Worksheet, w2 As WorksheetDim i As Integer, j As Integer, k As Integer, l As IntegerDim m As Integer, n As Integer, i1 As Integer, i2 As IntegerDim i3 As Integer, i4 As Integer, i5 As Integer, i6 As IntegerDim PWord1 As StringDim ShTag As Boolean, WinT ag As BooleanApplication.ScreenUpdating = FalseWith ActiveWorkbookWinT ag = .ProtectStructure Or .ProtectWindows End WithShTag = FalseFor Each w1 In WorksheetsShTag = ShT ag Or w1.ProtectContentsIf Not ShT ag And Not WinT ag ThenExit SubEnd IfIf Not WinT ag ThenMsgBox MSGNOPWORDS2, vbInformation, HEADER ElseDo 'dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 With ActiveWorkbook.Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If .ProtectStructure = False And _.ProtectWindows = False ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND1, _ "$$", PWord1), vbInformation, HEADEREnd IfEnd WithNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfIf WinT ag And Not ShT ag ThenExit SubEnd IfOn Error Resume NextFor Each w1 In Worksheets'Attempt clearance with PWord1w1.Unprotect PWord1Next w1On Error GoTo 0ShTag = FalseFor Each w1 In Worksheets'Checks for all clear ShT ag triggered to 1 if not. ShTag = ShT ag Or w1.ProtectContentsNext w1If ShTag ThenFor Each w1 In WorksheetsWith w1If .ProtectContents ThenOn Error Resume NextDo 'Dummy do loopFor i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 .Unprotect Chr(i) & Chr(j) & Chr(k) & _Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)If Not .ProtectContents ThenPWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)MsgBox Application.Substitute(MSGPWORDFOUND2, _ "$$", PWord1), vbInformation, HEADER'leverage finding Pword by trying on other sheetsFor Each w2 In Worksheetsw2.Unprotect PWord1Next w2Exit Do 'Bypass all for...nextsEnd IfNext: Next: Next: Next: Next: NextNext: Next: Next: Next: Next: NextLoop Until TrueOn Error GoTo 0End IfEnd WithNext w1End IfMsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER End Sub。
Excel VBA编程 保护工作簿

Excel VBA编程保护工作簿
在VBA中,用户可以使用Workbook.Protect方法进行保护工作簿,从而使Excel为用户提供了多层安全和保护功能,
语法:表达式.Protect(Password, Structure, Windows)
其中,Workbook.Protect方法包含3个参数,其功能如下:
●Password 表示一个字符串,该字符串为工作表或工作簿指定区分大小写的密码。
如果省略此参
数,不用密码就可以取消工作簿的保护。
否则,必须指定密码才能取消对工作簿的保护。
●Structure 如果该参数为True,则保护工作簿结构(工作表的相对位置),其默认值是False。
●Windows 如果为True,则保护工作簿窗口。
如果省略此参数,则窗口不受保护。
例如,为一个工作簿设置保护结构和窗体,并设置其密码为123456。
用户可以在【模块】代码窗口中,输入如下代码:
Sub 保护工作簿()
ActiveWorkbook.Protect Password:="123456", Structure:=True, Windows:=True
End Sub
若需要更改窗口的大小或结构,可以取消对工作簿的保护。
用户只需在【模块】代码窗口中,输入如下代码。
然后,运行该程序,则可以取消对工作簿的保护。
Sub 取消保护工作簿()
ActiveWorkbook.Unprotect Password:="123456"
End Sub。
VBA中常见的文件加密与解密方法与实例

VBA中常见的文件加密与解密方法与实例文件加密和解密是信息安全领域中必不可少的一部分。
VBA(Visual Basic for Applications)是一种编程语言,常用于Microsoft Office软件中,如Excel、Word等。
VBA 提供了许多可用于文件加密和解密的方法和函数,以帮助保护敏感信息和数据。
本文将介绍VBA中常见的文件加密和解密方法,并提供相应的实例。
一、VBA中的加密方法1. 使用密码保护文件Excel和Word都提供了密码保护文件的选项。
你可以设置访问密码,使得未输入正确密码的情况下无法打开或编辑文件。
下面是一个加密Excel文件的示例:```vbaSub PasswordProtectWorkbook()Dim strPassword As StringstrPassword = InputBox("请输入密码:")ThisWorkbook.Password = strPasswordEnd Sub```2. 使用加密算法加密文件内容VBA提供了多种加密算法,如DES、AES等。
你可以使用这些算法对文件内容进行加密。
下面是一个使用DES算法进行加密的示例:```vbaSub EncryptFileContent()Dim strInputFile As String, strOutputFile As StringDim objFSO As FileSystemObjectDim objInputFile As TextStream, objOutputFile As TextStreamDim strFileContent As String, strEncryptedContent As StringDim objDes As New CryptoAPI' 读取原文件内容strInputFile = "原文件路径"Set objFSO = New FileSystemObjectSet objInputFile = objFSO.OpenTextFile(strInputFile) strFileContent = objInputFile.ReadAllobjInputFile.Close' 加密文件内容objDes.Key = "加密密钥"objDes.Message = strFileContentstrEncryptedContent = objDes.Encrypt' 写入加密后的内容到新文件strOutputFile = "加密后的文件路径"Set objOutputFile =objFSO.CreateTextFile(strOutputFile)objOutputFile.Write strEncryptedContentobjOutputFile.CloseEnd Sub```二、VBA中的解密方法1. 使用密码解密文件如果一个文件通过密码保护进行了加密,那么你需要输入正确的密码才能打开和编辑文件。
Excel用VBA动态口令保护方法介绍

Excel用VBA动态口令保护方法介绍刚刚在知乎上看到有位网友提出了一个有趣的问题:想把一个Excel工作簿群发给几个朋友,同时不想其他人能够看到工作簿内容,可否通过VBA实现“动态口令”的效果?比如,2017年4月11日打开这个工作簿,就必须输入口令20170411才能看到内容;而2018年5月12日打开工作簿,就必须输入口令20180512。
对于这个问题,我个人的观点是:用VBA来动态生成密码,本质上就是不完备的。
因为用户可以在任何时间禁用excel的运行宏功能,此时VBA将失去作用,无论是生成密码还是保护文件都会失效。
那么假如我们假设用户永远启用VBA,这个问题就可以采用事件编程来解决:首先,在工作簿中新建一个完全空白的工作表,比如我下面例子中把第一张工作表设置为完全空白,然后希望的效果是:如果用户不能输入正确密码,那么就始终让这张工作表显示在最前面,无法看到后面真正有数据的那几张表。
接下来,运用我们《提高篇》中讲解的事件编程知识,打开VBA工程中“ThisWorkbook”的代码页,写入下面这些代码(我在里面加了注释):好,现在我们保存工作簿为.xlsm 文件。
然后再次打开时,就是下面的效果了。
只要用户输入的密码不正确,就永远无法终止消息框,也就看不到真正的数据表了。
不过这个代码有一个最大的问题,就是一旦用户禁用了宏,那么就可以直接打开工作簿看数据,VBA根本不运行。
怎么解决呢?办法总还是有的,只是实现上要复杂很多。
这里提供一个思路:首先,用VBA编写一个加密的私有函数,可以把所有工作表中的重要数据进行加密;然后,再编写一个VBA解密函数。
这样,在workbook_open 中,当用户输入了正确口令后,调用解密代码将所有表格数据解密;而在workbook_close 中,每当关闭时都调用加密代码将所有表格数据加密后再保存退出。
最后,将VBA工程进行口令保护,使别人无法看到这些代码。
这样,如果用户不启用宏,那么虽然打开工作表也只能看到密文;而一旦启用宏,就必须输入正确口令才可以。
使用VBA加密Excel文档保护信息安全

使用VBA加密Excel文档保护信息安全在当今信息高度互联的时代,保护个人或机构敏感信息的安全至关重要。
不幸的是,许多人对于他们存储的Excel文档的安全性缺乏足够的认识。
通过使用VBA(Visual Basic for Applications)编程语言,我们可以加密Excel文档,从而提高信息的安全性。
本文将详细介绍如何利用VBA加密Excel文档,以保护信息的安全。
首先,打开Excel文档,我们需要创建一个模块以编写VBA代码。
在Excel窗口中,按下“Alt+F11”键,打开Visual Basic Editor。
然后,在左侧的项目资源管理器中,双击要编写代码的工作表,或在菜单中选择“插入”>“模块”,以创建一个新的模块。
接下来,我们将使用VBA编写以下代码,以加密Excel文档。
```vbaSub EncryptWorkbook()Dim password As Stringpassword = InputBox("请输入加密密码")If password <> "" ThenThisWorkbook.Password = passwordThisWorkbook.SaveMsgBox "Excel文档已成功加密!"ElseMsgBox "请输入有效的密码!"End IfEnd Sub```在上述代码中,`EncryptWorkbook()`是一个自定义的宏,它会提示用户输入加密密码。
用户输入的密码将被用来加密Excel文档。
`ThisWorkbook.Password`用于设置密码,`ThisWorkbook.Save`则保存了加密的Excel文档。
最后,通过`MsgBox`函数,我们会在完成加密过程后向用户显示一个消息框。
将上述代码复制到新建的模块中后,按下“F5”键或在菜单中选择“运行”>“运行子过程”来执行编写好的VBA代码。
VBA实现Excel的数据加密与保护

VBA实现Excel的数据加密与保护数据在现代社会中扮演着重要的角色,因此保护数据的安全性变得尤为关键。
在处理敏感数据时,使用VBA来实现Excel的数据加密与保护是一种常见的方法。
本文将详细介绍如何使用VBA 来实现Excel的数据加密与保护。
首先,我们需要了解一些基本的VBA知识。
VBA是一种编程语言,可用于自动化处理Excel工作簿中的任务。
通过编写VBA 代码,我们可以对Excel中的数据进行加密和保护。
第一步,我们需要创建一个新的VBA模块。
在Excel中,按下“ALT + F11”键打开Visual Basic编辑器。
在左侧的“项目资源管理器”窗口中,找到并展开Excel工作簿,然后右键单击“Sheet1”(或其他你想要加密的工作表)并选择“插入”->“模块”。
这将创建一个新的VBA模块。
接下来,我们将在VBA模块中编写代码来实现数据的加密和保护。
以下是一个示例代码,可以加密和保护Excel中指定范围的数据:```vbaSub ProtectData()Dim rng As RangeDim pwd As String'指定需要加密和保护的数据范围Set rng = Worksheets("Sheet1").Range("A1:B10")'指定密码pwd = "password"'加密和保护数据范围rng.Locked = Truerng.FormulaHidden = Truerng.Protect Password:=pwd'保存工作簿ThisWorkbook.SaveEnd Sub```上述代码中,我们首先声明了两个变量。
`rng`变量用于指定需要加密和保护的数据范围,可以根据实际需求进行修改。
`pwd`变量用于指定密码,这个密码将用于解锁和修改受保护的数据。
接下来,我们使用`Locked`、`FormulaHidden`和`Protect`属性来加密和保护数据范围。
如何在VBA中进行文件加密和解密处理

如何在VBA中进行文件加密和解密处理VBA(Visual Basic for Applications)是一种广泛使用的编程语言,常用于微软的Office套件中,如Excel、Word等。
在VBA中,我们可以利用一些加密算法和方法对文件进行加密和解密处理。
本文将详细介绍如何在VBA中进行文件加密和解密处理的方法。
一、加密文件处理文件加密是指通过某种算法将文件内容转换成不可读的形式,以保护文件的安全性。
在VBA中进行文件加密处理可以采用以下步骤:1. 打开待加密的文件在VBA中,我们可以使用`FileSystemObject`对象的`OpenTextFile`方法来打开文件。
首先,我们需要创建一个`FileSystemObject`对象,并使用该对象的`OpenTextFile`方法打开文件。
以下是一个示例代码:```vbaDim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Dim inputFile As ObjectSet inputFile = fso.OpenTextFile("C:\input.txt", 1)```以上代码中,`CreateObject("Scripting.FileSystemObject")`用于创建`FileSystemObject`对象。
`OpenTextFile`方法的第一个参数是要打开的文件路径,第二个参数1表示以只读模式打开文件。
2. 读取文件内容一旦文件打开,我们可以使用`ReadAll`方法读取文件的内容。
以下是一个示例代码:```vbaDim fileContent As StringfileContent = inputFile.ReadAll```3. 加密文件内容加密文件内容的方法取决于所选择的加密算法。
巧用宏命令来为Excel工作表公式加密码

巧用宏命令来为Excel工作表公式加密码工作表中很多数据都是由公式计算生成的,那么如何让别人只看到计算的结果,而将使用的公式隐藏起来呢?今天我们就向大家介绍使用宏来解决这一问题。
一、创建宏启动Excel,依次选择“工具”—“宏”—“录制新宏”,在打开的窗口中输入宏的名称,并把“保存在”项设为“个人宏工作簿”,单击“确定”按钮进入宏录制模式。
此时我们可以在当前窗口中看到宏录制的工具栏,单击“停止录制”退出宏的录制。
退出后,在Excel中按下“Alt+F11”键,在打开的VB编辑窗口中选择“VBAProject(PERSONAL.XLS)”—“模块”—“模块1”,然后将右侧窗口中的内容替换成:Sub 密码保护() //宏的名称ActiveSheet.Unprotect ("888888") //默认密码Cells.SelectSelection.Locked = FalseSelection.SpecialCells(xlCellTypeFormulas, 23).SelectSelection.Locked = TrueSelection.FormulaHidden = TrueActiveSheet.Protect ("123456")ActiveSheet.EnableSelection = xlUnlockedCellsEnd Sub做好之后保存设置退出编辑窗口。
当然,在自己的Excel中,还是要将默认的888888换成自己的密码,以免造成泄露。
二、应用宏在Excel中打开“工具”菜单中的“自定义”命令,在“命令”选项卡的“类别”中选择“宏”,在“命令”中选择“自定义按钮”,并将其拖放到工具栏上,单击工具栏上的按钮,在弹出的窗口中选择我们创建的宏名并保存设置。
至此,我们要加密时只需单击该按钮,就可以将当前工作表保护起来,并且默认密码为888888,怎么样这样的操作是不是够方便呢。
Excel“工程不可查看”及VBA工程密码…

Excel“工程不可查看”及VBA工程密码…一、Excel“工程不可查看”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。
今天我对一个Excel宏编程中进行日期限制进行了破解。
方法一(共用级锁定)1、先对excel档进行一般的vbaproject”工程密码保护。
2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。
完成後,当你打开“vbaproject”工程属性时,就将会提示∶“工程不可看!”方法二(推荐,破坏型锁定)用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做......用以上软体打开excel档,查找定位以下地方∶id="{00000000-0000-0000-0000-000000000000}" 注∶实际显示不会全部为0此时,你只要将其中的位元组随便修改一下即可。
保存再打开,就会发现大功告成!当然,在修改前最好做好你的文档备份。
至於恢复只要将改动过的地方还原即可(只要你记住了呵呵)。
破解方面,有网友说将CMG=,DPB=和GC=后的"="替换为"."也可以的,我已测试过的确可以,这样更省事点。
用16进制编辑工具,如winhex、ultraedit-32打开X.xls文件,查找ID=......, 或到文件尾查看,找到即可。
改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常看到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时你就可以看看那些是被隐藏的了,很多时候打开是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()Worksheets("这里为你要显示的工作表名称").Visible = TrueEnd Sub关于破解EXCEL VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选你要你破解工程密码的EXCEL文件 >>再按F5执行即可.Private Sub VBAPassword()'你要解保护的Excel文件路径Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")If Dir(Filename) = "" ThenMsgBox "没找到相关文件,清重新设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXCEL为VBA工程设置密码
当你辛辛苦苦开发出的程序作品后,是不是想过怎样来保护好程序的源代码呢!,保护好程序源码,在大多会员来看都是非常关心的问题.遗憾的是,Excel不像其他的开发软件一样,在加密上很容易被各种密码破解软件破译.尽管这样,我们也应尽可能来保护Excel 工作簿和VBA源码。
一、为VBA工程设置密码
限制别人查看VBA源代码的一个简单办法就是设置VBA工程密码或设置工程不可查看。
方法如下:
1、按Alt+F11,在VBE窗口在,单击“工具—VBAproject属性”,打开“VBApro ject属性”对话框。
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对象模块中,保存文件即可。
★提示:使用该方法也可以限制工作簿的使用时间。