Excelから無圧縮ZIPを出力できると便利そうなので、取っ掛かりとしてVBAでCRC-32を実装してみました。
CRC-32の計算方法は以下の記事を参照してください。
Option Explicit Dim Crc32Table&(255) Private Sub InitCrc32Table() Dim I%, J%, R&, R1& For I = 0 To 255 R = I For J = 0 To 7 R1 = R And 1 R = (R - R1) / 2 If R < 0 Then R = R - &H80000000 If R1 Then R = R Xor &HEDB88320 Next J Crc32Table(I) = R Next I End Sub Public Function GetCrc32&(A$) Dim R&, I%, B As Byte If Crc32Table(255) = 0 Then InitCrc32Table R = Not 0 For I = 1 To Len(A) B = Asc(Mid(A, I, 1)) R = (Int(R / 256) And &HFFFFFF) Xor Crc32Table((R Xor B) And &HFF) Next I GetCrc32 = Not R End Function Public Function GetCrc32FromFile&(Path$) Dim R&, I&, B As Byte, FL& If Crc32Table(255) = 0 Then InitCrc32Table FL = FileLen(Path) Open Path For Binary Lock Read As #2 R = Not 0 For I = 1 To FL Get #2, , B R = (Int(R / 256) And &HFFFFFF) Xor Crc32Table((R Xor B) And &HFF) Next I Close #2 GetCrc32FromFile = Not R End Function