QQ聊天记录格式化的word宏

常用Word通配符替换

去掉QQ号:通配符:\([0-9]{5,10}\)
老师发言:<老师 {1,}[0-9]{1,2}:[0-9]{2}:[0-9]{2}>
时间格式:<[0-9]{1,2}:[0-9]{2}:[0-9]{2}>
网页换行(^l)转回车(^p)

'word宏开始

Sub QQ2010聊天记录格式整理()
'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
            'With ps.Range.Find
             '   .Text = t
             '   .Forward = True
             '   .Execute
             '   If .Found = True Then
             '       '老师为发言人
             '       isTeacher = True
             '   End If
            'End With

        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宏结束


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值