度々恐れ入ります、
先日掲題の件について、以下のとおり質問させて頂きました。
ご意見を活かしつつ
- 印刷直前のハッシュ値を取得する(Workbook_BeforePrint)
- ブックを閉じる直前のハッシュ値を取得する(Workbook_BeforeClose)
3)2)のCloseイベント時にハッシュ値に相違があればMsgBoxで確認という流れを想定しているのですが、
- について以下のコードを作成したのですが
正しく処理されません(ws.Cells(1, 1).Value = SHA1/MsgBox SHA1が印刷時にいずれも出力されない)
どこに問題点があるか分からなかったため、ご質問させて頂きました。
アドバイスを頂ければ幸いです。
宜しくお願い申し上げます。
vba
1Private Sub Workbook_BeforePrint(Cancel As Boolean) 2 3Dim wb As Workbook 4Dim ws As Worksheet 5 6Set wb = Workbooks("申請書") 7Set ws = wb.Worksheets("入力") 8 9Dim Enc As Object, Prov As Object 10Dim Hash() As Byte, i As Long 11Dim s As String 12Dim c As Range 13Dim dc As Range 14Dim SHA1 As String 15 16c = ws.Range("C:CE") 17s = "" 18 19For Each dc In c 20s = s & dc.Text 21Next 22 23 Set Enc = CreateObject("System.Text.UTF8Encoding") 24 Set Prov = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider") 25 26 Hash = Prov.ComputeHash_2(Enc.GetBytes_4(s)) 27 28 SHA1 = "" 29 For i = LBound(Hash) To UBound(Hash) 30 SHA1 = SHA1 + Hex(Hash(i) \ 16) + Hex(Hash(i) Mod 16) 31 Next 32 33 ws.Cells(1, 1).Value = SHA1 34 MsgBox SHA1 35 36 37End Sub 38
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/12 06:19
2018/11/12 06:40
2018/11/12 07:56