Word中怎么设置代码高亮 word中关键字高亮的设置方法

有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩进等格式,但在一般代码编辑工具中的关键字高亮功能却无法实现 。该方法无需任何插件,只需要制作一个宏即可实现类似sublime的显示效果
1、首先完成当前所有内容,建议把代码放入单独的文本框中,方便处理,也有较好的视觉效果 。记得一定要拷贝一份副本!因为很可能因为代码量比较多,处理宏的时候卡死,只能强制退出WORD了 。
2、当前文档新定义一个样式,命名为 code,专门用来对代码进行格式化 。由于是代码,所以推荐中文使用黑体(注释等),而英文使用等宽字体(courier new) 。步骤如图 。
3、选中代码,单击样式库 ccode,将代码应用该样式
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
【Word中怎么设置代码高亮 word中关键字高亮的设置方法】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

经验总结扩展阅读