QQ聊天记录格式化的word宏第二版
2013-11-04 13:44
691 查看
第二版功能更强大,可以设置多个人为不同颜色
Sub QQ聊天记录格式整理v2() 'QQ2010版聊天记录处理 '根据各自发言 的QQ名,并根据文档开头的发言人名称颜色,设置文档为相应的颜色 Dim ps As Paragraph Dim s As Paragraph Dim allps As Paragraphs Set allps = ActiveDocument.Paragraphs Dim sample As Paragraph Dim users() Dim colors() Dim color color = wdColorBlack index = 1 '遍历文档开头各人QQ名,保存各人发言颜色 For Each ps In allps If Left(ps.Range.text, 3) = "===" Then index = index + 1 Exit For End If Dim t As String t = ActiveDocument.Paragraphs(index).Range.text ReDim Preserve users(index) ReDim Preserve colors(index) users(index) = Left(t, Len(t) - 1) colors(index) = ActiveDocument.Paragraphs(index).Range.Font.color index = index + 1 Next 'Call 删除所有qq号 '1:整体变换网页换行^1与word中回车^p 'Call 网页换行改成回车 '2:老师姓名加红 i = 1 For Each ps In allps If i < index Then i = i + 1 Else i = i + 1 '没有时间,则表示为QQ发言人行 ps_len = Len(ps.Range.text) If ps_len > 8 Then text = Mid(ps.Range.text, ps_len - 7, 7) Else text = Left(ps.Range.text, ps_len - 1) End If If text Like "#:##:##" Then '这里判断为发言人、时间的特殊行 For color_index = 1 To UBound(users) If Left(ps.Range.text, Len(users(color_index))) = users(color_index) Then color = colors(color_index) Exit For End If Next End If ps.Range.Font.color = color End If Next End Sub Sub QQ聊天记录格式整理_老师发言红色() 'QQ2010版聊天记录处理 Dim ps As Paragraph Dim s As Paragraph Dim allps As Paragraphs Set allps = ActiveDocument.Paragraphs Call 删除所有qq号 '1:整体变换网页换行^1与word中回车^p Call 网页换行改成回车 '2:老师姓名加红 '老师为发言人段标识符 Dim isTeacher isTeacher = False '道友为发言人标识符 Dim isSayer isSayer = False '普通段落标识符 Dim isParag isParag = True For Each ps In allps With ps.Range.Find .text = "<[0-9]{1,2}:[0-9]{2}:[0-9]{2}>" .Forward = True .MatchWildcards = True .Execute If .Found = True Then '这种格式为发言人格式段落 isSayer = True isTeacher = False isParag = False '以12:23:56这样的时间格式结尾 ps.Range.Select If Left(ps.Range.text, Len(t)) = t Then '老师为发言人 isTeacher = True End If Else '普通段落 isSayer = False isParag = True End If End With '查找12:23:56这样的时间格式结尾 If isTeacher = True Then ps.Range.Font.color = wdColorRed ElseIf isSayer = True Then ps.Range.Font.color = wdColorBlue End If Next '3:时间字体变灰 Call 时间字体变成灰色 End Sub Sub 网页换行改成回车() ' ' 第一步 ' 网页换行改成回车 ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "^l" .Replacement.text = "^p" .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 End Sub Sub 时间字体变成灰色() ' ' 时间字体变成灰色 Macro ' 12:26:36是时间格式,通配符为<[0-9]{2}:[0-9]{2}:[0-9]{2}>,字体颜色改成灰色 ' ActiveWindow.ActivePane.VerticalPercentScrolled = 35 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "<[0-9]{1,2}:[0-9]{2}:[0-9]{2}>" .Replacement.Font.color = wdColorGray50 .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub Sub 删除所有qq号() ActiveWindow.ActivePane.VerticalPercentScrolled = 35 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "\([0-9]{5,10}\)" .Replacement.Font.color = wdColorGray50 .Replacement.text = " " .Forward = True .Wrap = wdFindContinue .Format = True .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub 'word宏结束
相关文章推荐
- QQ聊天记录格式化的word宏
- 恢复格式化硬盘数据之前的QQ聊天记录
- QTP和Clipboard(剪切板)完美组合解决QQ聊天记录获得的问题
- java解密手机QQ聊天记录
- 女儿有了男朋友怎么查看他们的QQ聊天记录?QQ1622863529
- 把QQ聊天记录插入数据库中
- 陌陌聊天记录被删除了,还能恢复吗?QQ1622863529
- 文本分析实例---QQ聊天记录分析
- QQ好友的列表恢复与聊天记录的恢复
- 解密QQ非会员漫游聊天记录
- 如何保存QQ聊天记录?
- QQ聊天记录删除了怎么恢复简单方法
- 【原创】【申请加精】hookQQ-API拦截QQ聊天记录-有图有码
- 小故事(和男友的QQ聊天记录)
- QQ聊天记录备份工具 v0.9
- 删除Mac版QQ聊天记录
- 把QQ聊天记录插入数据库中
- 美国签证新规:需要交出QQ、微博聊天记录
- QQ聊天记录
- QQ2014聊天记录察看器 V1.0官方版_QQ辅助软件.rar