word用宏+excel加解密的VB、python參考代碼

建一個string_substitution.xlsx,在sensitive_words字符串變量輸入待加密詞彙,空格間隔(圖中爲"a b c d e")

PS:數字8可以修改爲其他數字,即由隨機字符+數字組成的密文長度

import xlwings as xw
import string
import random
import pandas as pd
wb = xw.Book('./string_substitution.xlsx')
sht = wb.sheets['sheet1']
sensitive_words = '''
a b c d e
'''
sensitive_list = sensitive_words.split()
sensitive = []
for word in sensitive_list:
    ciphertext = ''.join(random.sample(
        string.ascii_letters+string.digits, 8))
    sensitive.append([word, ciphertext])
sht.range('a1').value = sensitive

得到密碼本excel,第一列原文,第二列密文

在word2016-視圖菜單-宏-查看宏,在宏名處新建兩個宏,即加密和解密。

參考代碼如下:

PS 密碼本excel已經要用絕對路徑!!!

加密VB代碼參考:

Sub 加密()
'
' 加密 宏
'
'
Dim i, p
Dim MyXls As Object
Set MyXls = CreateObject("密碼本Excel絕對路徑")
p = 51
For i = 1 To p
Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  With Selection.Find
     .Text = MyXls.Sheets(1).Range("a" & i)
     .Replacement.Text = MyXls.Sheets(1).Range("b" & i)
     .Forward = True
     .Wrap = wdFindContinue
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
  Next
MyXls.Close
Set MyXls = Nothing
End Sub

解密VB代碼參考:

Sub 解密()
Dim i, p
Dim MyXls As Object
Set MyXls = CreateObject("密碼本Excel絕對路徑")
p = 51
For i = 1 To p
Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  With Selection.Find
     .Text = MyXls.Sheets(1).Range("b" & i)
     .Replacement.Text = MyXls.Sheets(1).Range("a" & i)
     .Forward = True
     .Wrap = wdFindContinue
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
  Next
MyXls.Close
Set MyXls = Nothing
End Sub

要操作的時候打開之前新建宏的宏管理面板,下拉雙擊加密或者解密,或者點擊後再點右上方的運行即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章