Word中怎么设置代码高亮?word中关键字高亮的设置方法_办公软件教程-查字典教程网
Word中怎么设置代码高亮?word中关键字高亮的设置方法
Word中怎么设置代码高亮?word中关键字高亮的设置方法
发布时间:2016-12-23 来源:查字典编辑
摘要:有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩进等格式,但在一般代码编辑工具中的关键字高亮功能却无法实...

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

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

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

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

4、新建宏,步骤如图

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

复制内容到剪贴板 'scripttohighlightcodeIndocument PrivateFunctionisKeyword(w)AsBoolean DimkeysAsNewCollection Withkeys .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" EndWith isKeyword=isSpecial(w,keys) EndFunction PrivateFunctionisSpecial(ByValwAsString,ByRefcolAsCollection)AsBoolean ForEachiIncol Ifw=iThen isSpecial=True ExitFunction EndIf Next isspeical=False EndFunction PrivateFunctionisOperator(w)AsBoolean DimopsAsNewCollection Withops .Add"+":.Add"-":.Add"*":.Add"/":.Add"&":.Add"^":.Add";" .Add"%":.Add"#":.Add"!":.Add":":.Add",":.Add"." .Add"||":.Add"&&":.Add"|":.Add"=":.Add"++":.Add"--" .Add"'":.Add"""" EndWith isOperator=isSpecial(w,ops) EndFunction PrivateFunctionisType(ByValwAsString)AsBoolean DimtypesAsNewCollection Withtypes .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" EndWith isType=isSpecial(w,types) EndFunction SubSyntaxHighlight() DimwordCountAsInteger DimdAsInteger 'setthestyleofselection Selection.Style="ccode" d=0 wordCount=Selection.Words.Count Selection.StartOfwdWord Whiled<wordCount d=d+Selection.MoveRight(wdWord,1,wdExtend) w=Selection.Text IfisKeyword(Trim(w))=TrueThen Selection.Font.Color=wdColorBlue ElseIfisType(Trim(w))=TrueThen Selection.Font.Color=wdColorDarkRed Selection.Font.Bold=True ElseIfisOperator(Trim(w))=TrueThen Selection.Font.Color=wdColorBrown ElseIfTrim(w)="//"Then 'lInecomment Selection.MoveEndwdLine,1 commentWords=Selection.Words.Count d=d+commentWords Selection.Font.Color=wdColorGreen Selection.MoveStartwdWord,commentWords ElseIfTrim(w)="/*"Then 'blockcomment WhileSelection.Characters.Last<>"/" Selection.MoveLeftwdCharacter,1,wdExtend Selection.MoveEndUntil("*") Selection.MoveRightwdCharacter,2,wdExtend Wend commentWords=Selection.Words.Count d=d+commentWords Selection.Font.Color=wdColorGreen Selection.MoveStartwdWord,commentWords EndIf 'movethestartofselectiontonextword Selection.MoveStartwdWord Wend 'prepareForsetlInenumber Selection.MoveLeftwdWord,wordCount,wdExtend SetLIneNumber EndSub PrivateSubSetLIneNumber() DimlinesAsInteger lines=Selection.Paragraphs.Count Selection.StartOfwdParagraph Forl=1Tolines lIneNum=l&"" Ifl<10Then lIneNum=lIneNum&"" EndIf Selection.Text=lIneNum Selection.Font.Bold=False Selection.Font.Color=wdColorAutomatic p=Selection.MoveDown(wdLine,1,wdMove) Selection.StartOfwdLine Next EndSub

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

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新办公软件学习
    热门办公软件学习
    软件教程子分类