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
- 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
6、选定代码文本,然后执行highlight脚本:“视图”-“宏”- 选中“SyntaxHighlight”-“运行”,然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。
注意事项:处理前一定要对原文章进行备份,以免前功尽弃。处理较长代码时需要一定时间,请耐心等待。
相关文章
- 在编辑Word文档时,有时我们只需要导出其中的部分页面,而不是整个文档,下面将介绍如何在Word中导出部分页面2025-04-14
问卷星怎么转换成word文档? 问卷星问卷调查导出成word的技巧
在日常工作中,我们经常需要将问卷星上的问卷内容导出为Word格式,以便整理和分析数据,以下是三种简单的操作方法2025-04-14word文档一整页怎么截屏? word文档截图截一张全的图片技巧
在Word文档中想将一整页截屏下来,可以通过使用键盘中的Print Screen键和Word自带的截屏功能等多种方法截图,详细如下2025-04-14word开发工具怎么调出来? word工具栏添加开发工具的教程
许多用户在使用Word时,可能会发现菜单栏中缺少了“开发者工具”这一重要选项,这无疑限制了Word的某些高级功能应用,详细请看下文介绍2025-04-14Word文本框中的数字和英文字母如何进行竖排? word文档排版技巧
用Word进行排版成为我们办公中的主要方式,偶尔我们也可能会让文字竖着排版,让文字竖着排版我们都知道怎么操作,但是如何让英文字母和数字也纵向显示呢?详细请看下文介绍2025-03-25word文本框怎么对齐? word多个文本框快速批量对齐的技巧
word中有很多文本框,排列很乱,想要将所有文本框对齐,该怎么操作呢?下面我们就来看看详细的教程2025-03-21word分栏后如何设置页码? Word同一页分栏后的文本分别设置页码技巧
在使用Word进行文档排版时,经常需要将文档分栏,并且希望每栏都有不同的页码,这种效果在Word默认的页码样式中并不存在,需要通过手动插入域来实现,以下是详细步骤2025-03-13word多级列表怎么修改编号? Word多级列表各级编号格式批量修改技巧
编辑Word长文档时,为了让文本之间具有层次性,编号的使用必不可少,那么,对于编号,你会使用了吗?详细如下2025-03-13- 你是否在设置多级列表时遇到了编号问题?今天来分享创建多级列表的常见问题,别担心,这里为你提供全面的解决方案2025-03-13
word文档怎么锁定排版? 轻松锁定你的精心布局防止排版错乱
在 Word 文档中锁定排版,防止他人随意更改格式,可尝试以下两种方法,轻松锁定你的精心布局,详细如下文所属2025-03-11
最新评论