Word 代码高亮

Posted C# java C++ 开源通信

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Word 代码高亮相关的知识,希望对你有一定的参考价值。

整理文档比较费事,提供个脚本放在VBA里,使Word 代码高亮的一种方法是改变颜色

 script to high light code In document

Private Function isKeyword(w) As Boolean

    Dim keys As New Collection

    With keys
 
.Add "onStart": .Add "Log": .Add "volatile": .Add "friend"
 .Add "abstract": .Add "long": .Add "while": .Add "if"
 .Add "Activity": .Add "native": .Add "FALSE": .Add "implements"
 .Add "asm": .Add "new": .Add "import"
 .Add "auto": .Add "new?": .Add "enabled": .Add "inlIne"
 .Add "bool":  .Add "android": .Add "instanceof"
 .Add "boolean": .Add "onBind": .Add "receiver": .Add "int"
 .Add "boolean?": .Add "onCreate": .Add "exported": .Add "int?"
 .Add "break": .Add "onDestroy": .Add "filter": .Add "Intent"
 .Add "BroadcastReceiver": .Add "onRebind": .Add "action": .Add "interface"
 .Add "byte": .Add "onUnbind": .Add "category": .Add "isDebug?"
 .Add "case": .Add "package": .Add "application": .Add "synchronized"
 .Add "char": .Add "private": .Add "manifest": .Add "template"
 .Add "class": .Add "protected": .Add "xmlns": .Add "this"
 .Add "class?": .Add "protected?": .Add "version": .Add "throw?"
 .Add "const": .Add "public": .Add "encoding": .Add "transient"
 .Add "ContentProvider": .Add "register": .Add "utf": .Add "typename"
 .Add "continue": .Add "return": .Add "INTERNET": .Add "union"
 .Add "default": .Add "sendOrderBroadcast": .Add "RECEIVE_USER_PRESENT": .Add "unsigned"
 .Add "do": .Add "Service": .Add "WAKE_LOCK": .Add "virtual"
 .Add "double": .Add "short": .Add "READ_PHONE_STATE": .Add "void"
 .Add "else": .Add "signed": .Add "WRITE_EXTERNAL_STORAGE"
 .Add "enum": .Add "static": .Add "READ_EXTERNAL_STORAGE"
 .Add "explicit": .Add "static?": .Add "VIBRATE": .Add "CHANGE_WIFI_STATE"
 .Add "extends": .Add "strictfp": .Add "WRITE_SETTINGS": .Add "CHANGE_NETWORK_STATE"
 .Add "extern": .Add "String?": .Add "ACCESS_NETWORK_STATE": .Add "@"
 .Add "final": .Add "struct": .Add "ACCESS_WIFI_STATE": .Add "super"
 .Add "float": .Add "for": .Add "switch": .Add "typedef": .Add "sizeof"
 .Add "try":  .Add "namespace":  .Add "catch":  .Add "operator"
 .Add "cast":  .Add "NULL": .Add "null": .Add "delete":  .Add "throw"
 .Add "dynamic":  .Add "reinterpret":  .Add "true": .Add "TRUE"
 .Add "pub": .Add "provider": .Add "authorities": .Add "Add": .Add "get": .Add "set"
 .Add "uses": .Add "permission": .Add "allowBackup"
 .Add "grant": .Add "URI": .Add "meta": .Add "data": .Add "false": .Add "string": .Add "integer"
    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

  set the style of selection

Private Function isType(ByVal w As String) As Boolean

    Dim types As New Collection

    With types

        .Add "void": .Add "struct": .Add "union": .Add "enum": .Add "char": .Add "short": .Add "int"

        .Add "long": .Add "double": .Add "float": .Add "signed": .Add "unsigned": .Add "const": .Add "static"

        .Add "extern": .Add "auto": .Add "register": .Add "volatile": .Add "bool": .Add "class": .Add " private"

        .Add "protected": .Add "public": .Add "friend": .Add "inlIne": .Add "template": .Add "virtual"

        .Add "asm": .Add "explicit": .Add "typename"

    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 = "java code"
    

    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     深绿色。lIne comment 水绿色 wdColorAutomatic wdColorBlueGray

            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

 

 

以上是关于Word 代码高亮的主要内容,如果未能解决你的问题,请参考以下文章

Word中怎么设置代码高亮

怎么实现word或是wps里面的代码高亮

Jekyll 偏移代码片段高亮的初始行

Word 代码高亮

如何在ppt或word中添加高亮代码?

Word文档中的语法高亮显示代码