Excelă§ăăăŸăŒă«ăăă·ă„éąæ°ăäœżçšăăăæăăăă
ăăă©ă«ăă§ăŻćŻŸćżăăŠăăȘăăźă§çŹèȘéąæ°ăćźçŸ©ăăćż
èŠăăăăă°ă°ăă°æ
ć ±ăŻăăăăăăźă ăăć°ăăăăŁăăźă§èšéČăăŠăăă
ç°ćą
Windows10
Office365 ć·çæçčăăŒăžă§ăł(ăăŒăžă§ăł 2109 ăă«ă 16.0.14430.20314) 64 ăăă
æé
1. ăăŻăæćčăăăŻ(*.xlsm)ăšăăŠExcelăäżćăăă
2. [éçș]ăżăăă[Visual Basic]ăéžæăăă
3. èĄšç€șăăăç»éąć·Šăă€ăłă§ćłăŻăȘăăŻăă[æżć „]->[æšæșăąăžă„ăŒă«]ăéžæă
4. äœæăăăModule1ă«äžèšăłăŒăăèČŒăä»ăă
Public Function GetSHA256(ăăă·ă„ć€çźćșçŻćČ As Range) As String
Const LENGTH_OF_HASH = 32
Const LENGTH_OF_HASH_AS_STRING = 64
Set objUTF8 = CreateObject("System.Text.UTF8Encoding")
Set objSHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
Dim str As String
'Rangeăźæććç”ćïŒăŻăŒăŻă·ăŒăéąæ°ăźConcatăæ”çšïŒ
str = Application.WorksheetFunction.Concat(ăăă·ă„ć€çźćșçŻćČ)
'ăă€ăèȘăżèŸŒăż
Dim code() As Byte
code = objUTF8.GetBytes_4(str)
'ăăă·ă„ć€èšçź
Dim hashValue() As Byte
hashValue = objSHA256.ComputeHash_2(code)
'16éČæ°ăžć€æ
Dim description As String * LENGTH_OF_HASH_AS_STRING
Dim i&
For i = 0 To LENGTH_OF_HASH - 1
Mid(description, i * 2 + 1) = Right("0" & Hex(hashValue(i)), 2)
Next i
'return
GetSHA256 = LCase(description)
End Function
ăłăŒăăŻäžèšăȘăłăŻă§çŽčä»ăăăŠăăăăźăă»ăŒăăźăŸăŸć©çšăăăŠé ăă
ăăă§ăGetSHA256éąæ°ă仿§ćșæ„ăăăă«ăȘăăŻăă ăéąæ°ăćăăȘăă
ăăă§ć°ăăăăŁăă
5. .Net Framework 3.5ăźæćčć
.Net Framework 3.5ăæćčă§ăȘăăšSystem.Security.Cryptography.SHA256ManagedăćčăăȘăăăăă
èȘćăźç°ćąă§ăŻăăă©ă«ăçĄćčç¶æ
ă ăŁăăźă§ăæćčćăăŠăăă
ăăłăłăăăŒă«ăăă«>ăăă°ă©ă >Windowsăźæ©èœăźæćčćăŸăăŻçĄćčćăăšéČăżăăă§ăăŻă



Comments
Let's comment your feelings that are more than good