井大在群里有很多精彩的聊天记录,大家在转发,也有人在整理汇总,但是过去整理的方式是一条一条的粘贴复制,比较低效。经过摸索,找到一个比较高效的整理微信聊天记录的办法。
第一步:用合并聊天记录的功能+印象笔记来快速汇总
详情操作方式参考:如何快速整理微信聊天记录
第二步:复制所有内容粘贴到Word中进行编辑
在上一篇文章中也有说明操作方式。但是涉及到正则表达式,等专业技能,对于很多人使用起来还不是很方便。为了更加方便大家整理,做了一套傻瓜化的处理方式,录制并编写了一个专用的宏来处理。
第三步:复制印象笔记里的内容都Word里面,点击开发者工具→宏→选择宏→运行宏
补充说明,Word里面的开发者工具选项是默认不在主菜单的,需要手动开启。开启方式:
文件→选项→自定义功能区→主选项卡→勾选开发工具
需要的可以直接Alt+F11,粘贴这段代码保存运行即可。
Sub 井大聊天记录整理()
‘
‘ 井大聊天记录整理 宏
‘
‘
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “”
.Replacement.Text = “”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “井底望天 ([0-9]{2}):([0-9]{2})”
.Replacement.Text = “”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “^p”
.Replacement.Text = “。”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “。。”
.Replacement.Text = “。”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
我来解释一下这一段代码
批量替换昵称和时间
我们观察到前面都是【井底望天】,这四个字是相同的,后面的时间是不同的,需要替换掉的,因此正则表达式写为井底望天 ([0-9]{2}):([0-9]{2})
第一步:正则表达式,因此正则表达式写为井底望天 ([0-9]{2}):([0-9]{2}),替换为里面的内容不动
第二步:点击更多,选择使用通配符
第三步:点击全部替换。
这一段对应的宏代码为
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “井底望天 ([0-9]{2}):([0-9]{2})”
.Replacement.Text = “”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
接下来,发言人昵称和时间替换完了,还有很多换行符也对阅读体验造成影响。那么如何批量替换换行符呢?
批量替换换行符
换行符的字符标识方法为^p,也就是shift+6输入上面的那个字符,然后输入小写字母p。
下面的替换为保持不动,空白。然后更多里面的使用通配符这个勾选要去掉,点击全部替换即可完成对回车换行符的全部替换。这个操作只能在Word里面完成,印象笔记的编辑器不支持这样的命令和字符替换。为了减少后面标点符号的处理工作,我们把回车换行符替换为了句号。
这一段对应的代码为
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “^p”
.Replacement.Text = “。”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
句号的处理
另外每个人微信聊天的习惯不一样,有的人习惯在一句话后面加个句号,有的人不加句号。如果我们刚才替换的时候,回车换行符不是替换为句号,而是空白的话,就要手工去加很多句号。如果我们把回车换行符替换为了句号,那么就会出现一句话后面有连续两个句号的情况。但是连续两个句号比没有句号好处理多了。我们可以再用一段替换代码,把连续两个句号的替换为一个句号就可以了。
这一段对应的代码是
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “。。”
.Replacement.Text = “。”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
好了至此我们的编辑工作绝大部分就完成了,剩下的就是一些人工的编辑了,这个工作量就大大降低了。
其实我们解决这个问题,还是延续了杀鸡要用牛刀的思维。解决一个问题会再出现新的问题,但是最终解决的效率会大大优化。
接下来就是要在不同的软件之间形成Workflow的批处理方式了。
希望能够对你有所启发。如需原始文件,请发邮件到ideaguy@qq.com,详细说明来意。