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

所属分类: 软件教程 / 办公软件 阅读数: 1011
收藏 0 赞 0 分享

有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩进等格式,但在一般代码编辑工具中的关键字高亮功能却无法实现。该方法无需任何插件,只需要制作一个宏即可实现类似sublime的显示效果

1、首先完成当前所有内容,建议把代码放入单独的文本框中,方便处理,也有较好的视觉效果。记得一定要拷贝一份副本!因为很可能因为代码量比较多,处理宏的时候卡死,只能强制退出WORD了。

2、当前文档新定义一个样式,命名为"code",专门用来对代码进行格式化。由于是代码,所以推荐中文使用黑体(注释等),而英文使用等宽字体(courier new)。步骤如图。

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

4、新建宏,步骤如图

5、将VBA代码(在下一步中)拷贝进去,保存后关闭 (有VBA或相关程序经验者可根据自己需要进行相关修改,如关键词和高亮颜色等)

复制内容到剪贴板
  1. 'script to high light code In document  
  2.  
  3. Private Function isKeyword(w) As Boolean  
  4.  
  5. Dim keys As New Collection  
  6.  
  7. With keys  
  8.  
  9. .Add "if": .Add "else": .Add "elseif": .Add "case": .Add "switch": .Add "break"  
  10.  
  11. .Add "for": .Add "continue": .Add "do": .Add "while": .Add "foreach": .Add "echo"  
  12.  
  13. .Add "define": .Add "array": .Add "NULL": .Add "function": .Add "include": .Add "return"  
  14.  
  15. .Add "global": .Add "as": .Add "die": .Add "header": .Add "this": .Add "empty"  
  16.  
  17. .Add "isset": .Add "mysql_fetch_assoc": .Add "class": .Add "style"  
  18.  
  19. .Add "name": .Add "value": .Add "type": .Add "width": .Add "_POST": .Add "_GET"  
  20.  
  21. End With  
  22.  
  23. isKeyword = isSpecial(w, keys)  
  24.  
  25. End Function  
  26.  
  27. Private Function isSpecial(ByVal w As String, ByRef col As Collection) As Boolean  
  28.  
  29. For Each i In col  
  30.  
  31. If w = i Then  
  32.  
  33. isSpecial = True  
  34.  
  35. Exit Function  
  36.  
  37. End If  
  38.  
  39. Next  
  40.  
  41. isspeical = False  
  42.  
  43. End Function  
  44.  
  45. Private Function isOperator(w) As Boolean  
  46.  
  47. Dim ops As New Collection  
  48.  
  49. With ops  
  50.  
  51. .Add "+": .Add "-": .Add "*": .Add "/": .Add "&": .Add "^": .Add ";"  
  52.  
  53. .Add "%": .Add "#": .Add "!": .Add ":": .Add ",": .Add "."  
  54.  
  55. .Add "||": .Add "&&": .Add "|": .Add "=": .Add "++": .Add "--"  
  56.  
  57. .Add "'": .Add """"  
  58.   
  59. End With   
  60.   
  61. isOperator = isSpecial(w, ops)   
  62.   
  63. End Function   
  64.   
  65. Private Function isType(ByVal w As String) As Boolean   
  66.   
  67. Dim types As New Collection   
  68.   
  69. With types   
  70.   
  71. .Add "SELECT": .Add "FROM": .Add "WHERE": .Add "INSERT": .Add "INTO": .Add "VALUES": .Add "ORDER"  
  72.   
  73. .Add "BY": .Add "LIMIT": .Add "ASC": .Add "DESC": .Add "UPDATE": .Add "DELETE": .Add "COUNT"  
  74.   
  75. .Add "html": .Add "head": .Add "title": .Add "body": .Add "p": .Add "h1": .Add " h2"  
  76.   
  77. .Add "h3": .Add "center": .Add "ul": .Add "ol": .Add "li": .Add "a"  
  78.   
  79. .Add "input": .Add "form": .Add "b"  
  80.   
  81. End With   
  82.   
  83. isType = isSpecial(w, types)   
  84.   
  85. End Function   
  86.   
  87. Sub SyntaxHighlight()   
  88.   
  89. Dim wordCount As Integer   
  90.   
  91. Dim d As Integer   
  92.   
  93. ' set the style of selection  
  94.  
  95. Selection.Style = "ccode"  
  96.  
  97. d = 0  
  98.  
  99. wordCount = Selection.Words.Count  
  100.  
  101. Selection.StartOf wdWord  
  102.  
  103. While d < wordCount  
  104.  
  105. d = d + Selection.MoveRight(wdWord, 1, wdExtend)  
  106.  
  107. w = Selection.Text  
  108.  
  109. If isKeyword(Trim(w)) = True Then  
  110.  
  111. Selection.Font.Color = wdColorBlue  
  112.  
  113. ElseIf isType(Trim(w)) = True Then  
  114.  
  115. Selection.Font.Color = wdColorDarkRed  
  116.  
  117. Selection.Font.Bold = True  
  118.  
  119. ElseIf isOperator(Trim(w)) = True Then  
  120.  
  121. Selection.Font.Color = wdColorBrown  
  122.  
  123. ElseIf Trim(w) = "//" Then  
  124.  
  125. 'lIne comment   
  126.   
  127. Selection.MoveEnd wdLine, 1   
  128.   
  129. commentWords = Selection.Words.Count   
  130.   
  131. d = d + commentWords   
  132.   
  133. Selection.Font.Color = wdColorGreen   
  134.   
  135. Selection.MoveStart wdWord, commentWords   
  136.   
  137. ElseIf Trim(w) = "/*" Then   
  138.   
  139. 'block comment  
  140.  
  141. While Selection.Characters.Last <> "/"  
  142.  
  143. Selection.MoveLeft wdCharacter, 1, wdExtend  
  144.  
  145. Selection.MoveEndUntil ("*")  
  146.  
  147. Selection.MoveRight wdCharacter, 2, wdExtend  
  148.  
  149. Wend  
  150.  
  151. commentWords = Selection.Words.Count  
  152.  
  153. d = d + commentWords  
  154.  
  155. Selection.Font.Color = wdColorGreen  
  156.  
  157. Selection.MoveStart wdWord, commentWords  
  158.  
  159. End If  
  160.  
  161. 'move the start of selection to next word   
  162.   
  163. Selection.MoveStart wdWord   
  164.   
  165. Wend   
  166.   
  167. ' prepare For set lIne number   
  168.   
  169. Selection.MoveLeft wdWord, wordCount, wdExtend   
  170.   
  171. SetLIneNumber   
  172.   
  173. End Sub   
  174.   
  175. Private Sub SetLIneNumber()   
  176.   
  177. Dim lines As Integer   
  178.   
  179. lines = Selection.Paragraphs.Count   
  180.   
  181. Selection.StartOf wdParagraph   
  182.   
  183. For l = 1 To lines   
  184.   
  185. lIneNum = l & " "  
  186.   
  187. If l < 10 Then   
  188.   
  189. lIneNum = lIneNum & " "  
  190.   
  191. End If   
  192.   
  193. Selection.Text = lIneNum   
  194.   
  195. Selection.Font.Bold = False   
  196.   
  197. Selection.Font.Color = wdColorAutomatic   
  198.   
  199. p = Selection.MoveDown(wdLine, 1, wdMove)   
  200.   
  201. Selection.StartOf wdLine   
  202.   
  203. Next   
  204.   
  205. End Sub   
  206.   

6、选定代码文本,然后执行highlight脚本:“视图”-“宏”- 选中“SyntaxHighlight”-“运行”,然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。

注意事项:处理前一定要对原文章进行备份,以免前功尽弃。处理较长代码时需要一定时间,请耐心等待。

更多精彩内容其他人还在看

PowerPoint2007中如何在形状图上面添加图片?

我们在做PPT的时候,有时候为了让画面更加美观,达到某种特别的效果,那么就要用到图片,然而要将自己的图片插入到形状,图形中,那该怎么办呢?一起来看看我是怎么做得吧
收藏 0 赞 0 分享

Word2007文档种怎么在底部插入Excel表格?

Word2007文档种怎么在底部插入Excel表格?Word文档种想出入一个完整的excel表格,而不是直接插入表格,该怎么办呢?下面我们来看看word中插入excel表格的详细教程
收藏 0 赞 0 分享

excel中isoweeknum函数有什么作用?怎么使用?

excel中isoweeknum函数有什么作用?怎么使用?很多朋友并不是很清楚,其实操作很简单的,下面小编就为大家详细介绍一下,不会的朋友可以参考本文
收藏 0 赞 0 分享

在excel中month函数有什么作用?如何使用?

在excel中month函数有什么作用?如何使用?很多朋友并不是很清楚,所以下面小编就为大家详细介绍一下,不会的朋友快快来学习吧
收藏 0 赞 0 分享

PPT怎么出入Excel电子表格?ppt插入excel表格形式数据的教程

PPT怎么出入Excel电子表格?ppt文档中插入数据,但是想直接以excel电子表格显示,该怎么办呢?下面我们来看看ppt插入excel表格形式数据的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

EXCEL怎么使用批量批阅试卷减轻教师负担?

EXCEL怎么使用批量批阅试卷减轻教师负担?每次考试批改试卷是最愁人的,很多学生,很多份试卷批完也很麻烦,而且还分为两卷,怎么才能快速的批改试卷呢?下面我们来看看EXCEL来实现批量阅卷,以减轻教师的负担的方法
收藏 0 赞 0 分享

PPT快速绘制出桨形的风车图形?

PPT快速绘制出桨形的风车图形?ppt中可以绘制很多图形,为ppt课件达到预期的效果,我们今天来教大家绘制桨形来完成风车图形的效果,详细内容请看下文图文教程,需要的朋友可以参考下
收藏 0 赞 0 分享

在excel表格中怎么进行分数排列?

刚学习excel表格的新手们,你们知道如何给数据排序吗,因为这是一个很重要的功能哦,比如你想把成绩排序,看看谁的成绩最高,谁的最低,还有给杂乱的数据按照时间排序,顿时表格就清晰了,这些都是很必要的。那么在excel表格中怎么进行分数排列?下面我们来看看吧
收藏 0 赞 0 分享

PPT中动态按钮和超链接有什么区别?该怎么设置?

PPT中动态按钮和超链接有什么区别?该怎么设置?在ppt中动态按钮和超链接是经常会用到的功能,但是他们之前有什么区别,分别该用在什么地方?下面我们来看看详细介绍
收藏 0 赞 0 分享

excel统计函数countif有什么作用?怎么使用?

excel统计函数countif有什么作用?怎么使用?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家详细介绍一下,一起来学习吧
收藏 0 赞 0 分享
查看更多