zoukankan      html  css  js  c++  java
  • 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
    
     
  • 相关阅读:
    A Node Influence Based Label Propagation Algorithm for Community detection in networks 文章算法实现的疑问
    Fast Newman-FN算法以及模块度定义介绍
    Label Propagation Algorithm LPA 标签传播算法解析及matlab代码实现
    设计一个smartnic
    Intel GEN11 GPU
    Intel GEN9 GPU
    Shared Virtual Memory (SVM) Functions
    connect via ssh to virtualbox guest vm without knowing ip address
    smartnic
    技术精品翻译
  • 原文地址:https://www.cnblogs.com/endv/p/7499332.html
Copyright © 2011-2022 走看看