Я довольно новичок в VBA и унаследовал код VBA, и человек, который написал этот код, защитил листы с помощью приведенного ниже подпункта и функции.
Кто-нибудь может декодировать нижеприведенное?Похоже, он использует специальные символы, но этот код слишком сложен для моего текущего понимания.
Буду признателен за любые рекомендации или отзывы.
Public Sub makeSafe(ws As Worksheet, safe As Boolean)
If safe Then
If Not ws.Name = "COMPLETED" Then
ws.Columns("A:B").Locked = False
ws.Columns("D").Locked = False
End If
ws.Protect XOREnc("½ ·Î½ ·", "nope")
Else
ws.Unprotect XOREnc("½ ·Î½ ·", "nope")
End If
End Sub
Function XOREnc(theInput As String, theKey As String) As String
Dim val1, val2 As Integer, out As String, temp As Integer
For i = 1 To Len(theInput)
val1 = Asc(Mid(theInput, i, 1))
val2 = Asc(Mid(theKey, i Mod Len(theKey) + 1, 1))
If val1 Xor val2 < 32 Then
temp = 255 - (val1 Xor val2)
Else
temp = val1 Xor val2
End If
out = out & Chr(temp)
Next i
XOREnc = out
End Function