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

所属分类: 软件教程 / 办公软件 阅读数: 1039
收藏 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”-“运行”,然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。

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

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

如何在word文档中将页眉上横线删除

如何在word文档中将页眉上横线删除?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家介绍一下,一起来看看吧
收藏 0 赞 0 分享

使用捷速PDF编辑器修改pdf文档教程

要想修改pdf文档,但是不知道怎么修改,首先用户需要在电脑上下载安装捷速PDF编辑器,安装的过程非常简,之后按照下文操作即可
收藏 0 赞 0 分享

六亿宝贝反黄软件如何卸载(传统方法不行)

如何卸载,是安装了六亿宝贝反黄软件的用户最爱搜索的问题,传统的卸载方法不管用呀,还好想到了这个方法,下面以图文的形式为大家详细介绍下
收藏 0 赞 0 分享

Word2003版本保存怎么用?

Word版本保存怎么用?他可以打开其他协同者所保存的版本来查看该协同者完成对文档编辑之后的状态,还可根据各版本保存时间的先后来依次打开各版本,从而比对某一协同者编辑文旦前、后的状态变化
收藏 0 赞 0 分享

word字体显示一半怎么办?

word字体显示一半怎么办?现在大家都是无纸办公化,尤其使用word、excell比较多,但是我们在使用过程中总是碰到一些问题,比方我们在打字的时候,总是出现显示一半的情况,下面分享解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

PDF文件怎么提取页面到另一个PDF文件中?

PDF文件怎么提取页面到另一个PDF文件中?很多学习资料都是PDF格式的,有时自己证件扫描也会存进PDF文件,但是其中某些页的内容自己想分离出来,存进一个新的PDF中 ,网上方法还要下软件,下面分享一个简单的技巧,感兴趣的可以进来参考一下
收藏 0 赞 0 分享

ppt怎么设置动画窗格声音视频?

ppt怎么设置动画窗格声音视频?office ppt 的动画功能很轻大,尤其是配合视频,和音频后。下面以 office 2010为例告诉这些简单的操作如何设置。如何防止,需要的朋友可以参考下
收藏 0 赞 0 分享

word怎么设置才能尽可能的减少打印页面?

word怎么设置才能尽可能的减少打印页数?要打印的word文档有很多页,即使双面打印也要浪费很多纸张,该怎办呢?下面分享一种设置方法可以减少word打印页面,感兴趣的可以进来参考一下
收藏 0 赞 0 分享

ppt文档设置成单击时却还会自动启动的解决办法

ppt为何设置成单击时却还会自动启动?office办公软件虽然看来简单,但是功能太细太复杂了。比如说PPT里动画窗格明明设置成了“单击时”启动,然而播放的时候却变成自动的了,下面分享解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

WPS 无法启动无法启动打印作业该怎么解决?

WPS 无法启动无法启动打印作业该怎么解决?在局域网内连接打印机启动打印作业时会出现一些小状况,例如偶尔会出现“WPS office 无法启动打印作业……”的问题,下面分享解决办法
收藏 0 赞 0 分享
查看更多