world 字体 选取高亮_Word中怎么设置代码高亮 word中关键字高亮的设置方法

本文介绍如何在Word中实现代码高亮,无需插件,通过创建宏和定义样式来实现类似Sublime的显示效果。步骤包括创建"code"样式、定义关键字、操作符和类型的颜色,并提供VBA宏代码示例。
摘要由CSDN通过智能技术生成

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

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

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

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

4、新建宏,步骤如图9014248_20151108114157114_thumb.jpg

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

复制内容到剪贴板

'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”-“运行”, 然后执行就可以了。处理较长代码时需要一定时间,请耐心等待。9014248_20151108114157116_thumb.jpg

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值