乐于分享
好东西不私藏

把文档发给AI处理前,我用一个按钮把敏感信息全部隐藏了

把文档发给AI处理前,我用一个按钮把敏感信息全部隐藏了

把文档发给AI处理前,我用一个按钮把敏感信息全部隐藏了

专注AI办公提效 🚀 每周分享实测好用的AI办公技巧Excel自动化 / 会议纪要AI化 / 智能招投标


写在前面

做标书、做会议记录的朋友都知道,一份资料动辄几页甚至几十页。
现在大家都想用AI帮忙润色、排版、生成内容,但文档里全是公司名、人名、手机号……直接发给AI?不敢。手动一个个替换?太累。换完发给AI,AI返回的文档还得手动改回去?更痛苦。
今天分享一个我实测最顺手的方案:一键脱敏,一键恢复。弄好后,整个过程两个按钮搞定,而且敏感信息和代码分离,改Excel就行,不用动代码。

先看效果

发给AI前:点一下「正向脱敏」按钮 👉 张江→张*、北京某某科技有限公司→某科技公司、13812345678→138****5678
AI返回后:点一下「反向恢复」按钮 👉 所有脱敏标记自动还原为真实信息
整个过程:两个按钮,零手动替换。

核心架构:三件套

这个方案由三个组件配合完成:
组件
作用
存放位置
Excel映射表
维护「原始内容 ↔ 脱敏内容」的对照关系
本地任意路径(如 D:\映射表.xlsx)
VBA宏
读取Excel映射表,自动执行正向/反向替换
Normal.dotm(Word全局模板)
自定义按钮
一键触发宏
Word左上角快速访问工具栏
核心设计思路:敏感信息与代码分离。映射关系全部放在Excel里,增删改只需要编辑Excel,不用碰VBA代码。

实操步骤

Step 1:建一张Excel映射表

新建一个Excel文件,比如保存在 D:\映射表.xlsx,结构如下:
原始内容
脱敏内容
张江
张**
李虎
李**
北京某某科技有限公司
某科技公司
13812345678
138****5678
第一行是表头,从第二行开始填数据。需要新增、修改、删除规则?直接在Excel里编辑保存就行,不用动代码

💡 小技巧:脱敏内容建议用有辨识度的字符串(比如加方括号【张**】),避免AI生成的内容里恰好出现相同字符导致反向恢复时误替换。

Step 2:把VBA代码粘贴到Word

  1. 打开Word,按 Alt + F11 打开VBA编辑器
  2. 在左侧找到 Normal → 右键 → 插入 → 模块
  3. 把下面的代码全部粘贴进去
' ===== 正向脱敏:发送给AI前使用 =====Sub 正向脱敏_发送给AI()    Application.ScreenUpdating = False    Dim xlApp As Object, xlBook As Object, xlSheet As Object    Dim i As Integer, lastRow As Integer    Set xlApp = CreateObject(”Excel.Application”)    Set xlBook = xlApp.Workbooks.Open(”D:\映射表.xlsx”)  ' ← 改成你的实际路径    Set xlSheet = xlBook.Sheets(1)    lastRow = xlSheet.UsedRange.Rows.Count    For i = 2 To lastRow   ' 第1行是表头,从第2行开始        Call BatchReplace(xlSheet.Cells(i, 1).Value, xlSheet.Cells(i, 2).Value)    Next i    xlBook.Close False    xlApp.Quit    Application.ScreenUpdating = True    MsgBox ”脱敏完成,可以发给AI了!”End Sub===== 反向恢复:AI返回后使用 =====Sub 反向恢复_从AI取回()    Application.ScreenUpdating = False    Dim xlApp As Object, xlBook As Object, xlSheet As Object    Dim i As Integer, lastRow As Integer    Set xlApp = CreateObject(”Excel.Application”)    Set xlBook = xlApp.Workbooks.Open(”D:\映射表.xlsx”)  ' ← 改成你的实际路径    Set xlSheet = xlBook.Sheets(1)    lastRow = xlSheet.UsedRange.Rows.Count    For i = 2 To lastRow        Call BatchReplace(xlSheet.Cells(i, 2).Value, xlSheet.Cells(i, 1).Value)  ' 注意:这里交换了两列    Next i    xlBook.Close False    xlApp.Quit    Application.ScreenUpdating = True    MsgBox ”已恢复真实信息!”End Sub' ===== 替换核心函数 =====Sub BatchReplace(FindText As String, ReplaceWith As String)    With ActiveDocument.Content.Find        .ClearFormatting        .Text = FindText        .Replacement.Text = ReplaceWith        .Forward = True        .Wrap = wdFindContinue        .Format = False        .MatchCase = False        .MatchWholeWord = False        .MatchWildcards = False        .Execute Replace:=wdReplaceAll    End WithEnd Sub

⚠️ 重要:代码中有两处 "D:\映射表.xlsx",都要改成你实际的映射表路径。

参考截图

Step 3:添加自定义按钮

  1. Word → 文件 → 选项 → 快速访问工具栏
  2. 「从下列位置选择命令」下拉选择 → 宏
  3. 找到 Normal.NewMacros.正向脱敏_发送给AI → 点「添加」
  4. 找到 Normal.NewMacros.反向恢复_从AI取回 → 点「添加」
  5. 点「确定」

参考截图

现在Word左上角就多了两个按钮,以后一键操作即可。

Step 4:日常使用流程

场景
操作
需要增删改规则
直接编辑映射表.xlsx,保存即可
发给AI前
打开Word文档 → 点「正向脱敏」→ 保存 → 发送
AI返回后
打开返回的文档 → 点「反向恢复」→ 保存 → 完成
就这两步,循环往复。操作效果图,放在下一篇一键生成组织机构图~

这个方案好在哪?

特点
说明
✅ 规则与代码分离
映射规则在Excel中,修改无需动VBA代码
✅ 一键操作
自定义按钮,点一下即可
✅ 安全
代码存在Normal.dotm全局模板里,不会进入文档文件本身
✅ 易于维护
打开Excel就能增删改映射关系
✅ 可逆
正向脱敏 + 反向恢复,完整闭环

注意事项

映射表路径要填对:VBA代码中有两处路径,都要改成你映射表的实际位置
脱敏字符串要有辨识度:建议用方括号包裹(如【张**】),避免误替换
发给AI时附一句说明:比如"请勿修改文档中的脱敏标记",防止AI自作主张改了脱敏字符导致恢复失败

写在最后

这是我实测最顺手的文档脱敏方案,如果你也在用AI处理标书、会议记录、合同等敏感文档,一定要试试。
关注「AI办公实战」,每周分享一个实测好用的AI办公技巧。

一起把繁琐扔给工具,把时间留给自己。

本文首发于微信公众号「一键AI办公实战」,专注AI办公提效,每周更新。