
word
1、首先完成当前所有内容,建议把代码放入单独的文本框中,方便处理,也有较好的视觉效果。记得一定要拷贝一份副本!因为很可能因为代码量比较多,处理宏的时候卡死,只能强制退出word了。
2、当前文档新定义一个样式,命名为 code ,专门用来对代码进行格式化。由于是代码,所以推荐中文使用黑体(注释等),而英文使用等宽字体(courier new)。步骤如图。

VBA
4、新建宏,步骤如图
5、将VBA代码(在下一步中)拷贝进去,保存后关闭 (有VBA或相关程序经验者可根据自己需要进行相关修改,如关键词和高亮颜色等)
复制内容到剪贴板
'script to high light code In document
Private Function isKeyword(w) As Boolean
Dim keys As New Collection
With keys
.Add if: .Add else: .Add elseif: .Add case: .Add switch: .Add break
.Add for: .Add continue: .Add do: .Add while: .Add foreach: .Add echo
.Add define: .Add array: .Add NULL: .Add function: .Add include: .Add return
.Add global: .Add as: .Add die: .Add header: .Add this: .Add empty
.Add isset: .Add MySQL_fetch_assoc: .Add class: .Add style
.Add name: .Add value: .Add type: .Add width: .Add _POST: .Add _GET
End With
isKeyword = isSpecial(w, keys)
End Function
Private Function isSpecial(ByVal w As String, ByRef col As Collection) As Boolean
For Each i In col
If w = i Then
isSpecial = True
Exit Function
End If
Next
isspeical = False
End Function
Private Function isOperator(w) As Boolean
Dim ops As New Collection
With ops
.Add +: .Add -: .Add *: .Add /: .Add : .Add ^: .Add ;
.Add %: .Add #: .Add !: .Add :: .Add ,: .Add .
.Add ||: .Add : .Add |: .Add =: .Add ++: .Add --
.Add ' : .Add
End With
isOperator = isSpecial(w, ops)
End Function
Private Function isType(ByVal w As String) As Boolean
Dim types As New Collection
With types
.Add SELECT : .Add FROM : .Add WHERE : .Add INSERT : .Add INTO : .Add VALUES : .Add ORDER
.Add BY : .Add LIMIT : .Add ASC : .Add DESC : .Add UPDATE : .Add DELETE : .Add COUNT
.Add html : .Add head : .Add title : .Add body : .Add p : .Add h1 : .Addh2
.Add h3 : .Add center : .Add ul : .Add ol : .Add li : .Add a
.Add input : .Add form : .Add b
End With
isType = isSpecial(w, types)
End Function
Sub SyntaxHighlight()
Dim wordCount As Integer
Dim d As Integer
' set the style of selection
Selection.Style = ccode
d = 0
wordCount = Selection.words.Count
Selection.StartOf wdword
While dwordCount
d = d + Selection.MoveRight(wdword, 1, wdExtend)
w = Selection.Text
If isKeyword(Trim(w)) = True Then
Selection.Font.Color = wdColorBlue
ElseIf isType(Trim(w)) = True Then
Selection.Font.Color = wdColorDarkRed
Selection.Font.Bold = True
ElseIf isOperator(Trim(w)) = True Then
Selection.Font.Color = wdColorBrown
ElseIf Trim(w) = // Then
' lIne comment
Selection.MoveEnd wdLine, 1
commentwords = Selection.words.Count
d = d + commentwords
Selection.Font.Color = wdColorGreen
Selection.MoveStart wdword, commentwords
ElseIf Trim(w) = /* Then
'block comment
While Selection.Characters.Last/
Selection.MoveLeft wdCharacter, 1, wdExtend
Selection.MoveEndUntil (*)
Selection.MoveRight wdCharacter, 2, wdExtend
Wend
commentwords = Selection.words.Count
d = d + commentwords
Selection.Font.Color = wdColorGreen
Selection.MoveStart wdword, commentwords
End If
' move the start of selection to next word
Selection.MoveStart wdword
Wend
' prepare For set lIne number
Selection.MoveLeft wdword, wordCount, wdExtend
SetLIneNumber
End Sub
Private Sub SetLIneNumber()
Dim lines As Integer
lines = Selection.Paragraphs.Count
Selection.StartOf wdParagraph
For l = 1 To lines
lIneNum = l
If l10 Then
lIneNum = lIneNum
End If
Selection.Text = lIneNum
Selection.Font.Bold = False
Selection.Font.Color = wdColorAutomatic
p = Selection.MoveDown(wdLine, 1, wdMove)
Selection.StartOf wdLine
Next
End Sub
6、 选定代码文本 ,然后执行highlight脚本: 视图-宏- 选中SyntaxHighlight-运行, 然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。
注意事项: 处理前一定要对原文章进行备份,以免前功尽弃。处理较长代码时需要一定时间,请耐心等待。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号