The solution must work in Excel 2003 and later, if it matters.
For Excel VBA, I suggest using the CAPICOM Library.
Download the file from here. Once it is installed, follow these instructions for registering the Dll.
32 bit OS
Copy the file Capicom.dll from the C:\Program Files\Microsoft CAPICOM 2.1.0.2 SDK\Lib
to C:\Windows\System32
Next on Start Menu | Run , type this
Regsvr32 C:\Windows\System32\Capicom.dll
64 bit OS
Copy the file Capicom.dll from the C:\Program Files (x86)\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86
to C:\Windows\SysWOW64
Next on Start Menu | Run , type this
Regsvr32 C:\Windows\SysWOW64\Capicom.dll
Now we are set to use it in our VBA Project
Paste this code in a module
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
The function EncryptString
encrypts the string and the function DecryptString
decrypts the string. See snapshot of results when you run the above Sub Sample
