Word使代码颜色不同(代码高亮)
来源:网络收集 点击: 时间:2024-02-22准备:首先完成当前所有内容,建议把代码放入单独的文本框中,方便处理,也有较好的视觉效果。记得一定要拷贝一份副本!因为很可能因为代码量比较多,处理宏的时候卡死,只能强制退出WORD了。
2/7当前文档新定义一个样式,命名为code,专门用来对代码进行格式化。由于是代码,所以推荐中文使用黑体(注释等),而英文使用等宽字体(courier new)。步骤如图。

选中代码,单击样式库 ccode,将代码应用该样式

新建宏,步骤如图

将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: .Add h2
.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 d wordCount
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 l 10 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
7/7选定代码文本,然后执行highlight脚本:“视图”-“宏”- 选中“SyntaxHighlight”-“运行”,然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。

处理前一定要对原文章进行备份,以免前功尽弃。
处理较长代码时需要一定时间,请耐心等待。
word代码高亮版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_100297.html