如果重要,该解决方案必须在 Excel 2003 及更高版本中运行。
对于 Excel VBA,我建议使用 CAPICOM 库。
从这里下载文件。安装后,请按照这些说明注册 Dll。
32 位操作系统
将文件 Capicom.dll 从复制C:\Program Files\Microsoft CAPICOM 2.1.0.2 SDK\Lib
到C:\Windows\System32
开始菜单上的下一步| 运行,输入这个
Regsvr32 C:\Windows\System32\Capicom.dll
64位操作系统
将文件 Capicom.dll 从复制C:\Program Files (x86)\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86
到C:\Windows\SysWOW64
开始菜单上的下一步| 运行,输入这个
Regsvr32 C:\Windows\SysWOW64\Capicom.dll
现在我们准备在我们的 VBA 项目中使用它
将此代码粘贴到模块中
Option Explicit
Sub Sample()
Dim TextToEncrypt As String, EncryptedText As String
Dim TextToDeCrypt As String, DeCryptedText As String
Dim KeyToEncrypt As String
TextToEncrypt = "Hello World"
KeyToEncrypt = "JoshMagicWord"
EncryptedText = EncryptString(TextToEncrypt, KeyToEncrypt)
DeCryptedText = DecryptString(EncryptedText, KeyToEncrypt)
Debug.Print "The string " & TextToEncrypt & " after encryption looks like this"
Debug.Print "-----------------------------------------------------------------"
Debug.Print EncryptedText
Debug.Print "-----------------------------------------------------------------"
Debug.Print "The above string after decrypting looks like this"
Debug.Print "-----------------------------------------------------------------"
Debug.Print DeCryptedText
End Sub
Public Function EncryptString(strText As String, ky As String) As String
Dim Cap As Object
Dim cryptIt
Set Cap = CreateObject("CAPICOM.EncryptedData")
Cap.Algorithm = 3
Cap.SetSecret ky
Cap.Content = strText
EncryptString = Cap.Encrypt
End Function
Public Function DecryptString(strText As String, ky As String) As String
Dim Cap As Object
Dim cryptIt
Set Cap = CreateObject("CAPICOM.EncryptedData")
Cap.Algorithm = 3
Cap.SetSecret ky
Cap.Decrypt strText
DecryptString = Cap.Content
End Function
函数EncryptString
加密字符串,函数DecryptString
解密字符串。运行上述内容时查看结果快照Sub Sample
