由于word的查找不支持正则表达式,所以很难匹配VB中的注释,这样也就无法对这些注释批量应用一些样式,于是自己写了一段VBA来对这些注释批量应用样式,代码如下:
1
Sub ToComment()2
'3
' Description: 把文档中的VBA注释应用特殊样式4
' Author: BusyAnt5
' CreateTime: 2009-03-03 00:01:346
'7
Dim fRange As Range8
9
' 禁止刷屏10
Application.ScreenUpdating = False11
12
Set doc = ActiveDocument13
' 删除现有的样式14
For i = 1 To doc.Styles.Count - 115
If doc.Styles(i).NameLocal = "VBA注释" Then16
doc.Styles(i).Delete17
End If18
Next19
20
' 新建样式21
ActiveDocument.Styles.Add Name:="VBA注释", Type:=wdStyleTypeCharacter22
With ActiveDocument.Styles("VBA注释").Font23
.Bold = False24
.NameFarEast = "仿宋_GB2312"25
.NameAscii = "宋体"26
.NameOther = "宋体"27
.Name = "Arial"28
.Size = 10.529
.Color = wdColorGreen30
End With31
32
' 初始化fRange33
Set fRange = ActiveDocument.Range(Start:=0, End:=ActiveDocument.Content.End)34
35
' 应用36
Call ApplyStyle(fRange)37
End Sub38

39
Sub ApplyStyle(ByRef fRange As Range)40
Dim cRange As Range41
Set cRange = ActiveDocument.Range(0, 0)42
With fRange.Find43
.Text = "'"44
.Forward = True45
.Wrap = wdFindStop ' 搜索到文档末尾截止46
.Format = False47
.MatchCase = False48
.MatchWholeWord = False49
.MatchByte = False50
.MatchAllWordForms = False51
.MatchSoundsLike = False52
.MatchWildcards = False53
End With54
fRange.Find.Execute ' 将改变fRange的起始位置55
If Not fRange.Find.Found Then ' 找不到就退出56
Exit Sub57
End If58
cRange.Start = fRange.Start59
Debug.Print cRange.Start60
cRange.End = fRange.Paragraphs(1).Range.End61
fRange.Start = cRange.End62
fRange.End = ActiveDocument.Content.End63
cRange.Style = ActiveDocument.Styles("VBA注释")64
Call ApplyStyle(fRange)65
End Sub66
End Sub