Word中怎么設(shè)置代碼高亮?word中關(guān)鍵字高亮的設(shè)置方法

有時(shí)寫(xiě)文檔時(shí)需要將代碼粘貼到word中,但直接粘貼到word中的代碼雖能保持換行與縮進(jìn)等格式,但在一般代碼編輯工具中的關(guān)鍵字高亮功能卻無(wú)法實(shí)現(xiàn)。該方法無(wú)需任何插件,只需要制作一個(gè)宏即可實(shí)現(xiàn)類(lèi)似sublime的顯示效果
1、首先完成當(dāng)前所有內(nèi)容,建議把代碼放入單獨(dú)的文本框中,方便處理,也有較好的視覺(jué)效果。記得一定要拷貝一份副本!因?yàn)楹芸赡芤驗(yàn)榇a量比較多,處理宏的時(shí)候卡死,只能強(qiáng)制退出WORD了。
2、當(dāng)前文檔新定義一個(gè)樣式,命名為"code",專(zhuān)門(mén)用來(lái)對(duì)代碼進(jìn)行格式化。由于是代碼,所以推薦中文使用黑體(注釋等),而英文使用等寬字體(courier new)。步驟如圖。
3、選中代碼,單擊樣式庫(kù) ccode,將代碼應(yīng)用該樣式
4、新建宏,步驟如圖
5、將VBA代碼(在下一步中)拷貝進(jìn)去,保存后關(guān)閉 (有VBA或相關(guān)程序經(jīng)驗(yàn)者可根據(jù)自己需要進(jìn)行相關(guān)修改,如關(guān)鍵詞和高亮顏色等)
- '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、選定代碼文本,然后執(zhí)行highlight腳本:“視圖”-“宏”- 選中“SyntaxHighlight”-“運(yùn)行”,然后執(zhí)行就可以了。處理較長(zhǎng)代碼時(shí)需要一定時(shí)間,請(qǐng)耐心等待。
注意事項(xiàng):處理前一定要對(duì)原文章進(jìn)行備份,以免前功盡棄。處理較長(zhǎng)代碼時(shí)需要一定時(shí)間,請(qǐng)耐心等待。
相關(guān)文章
word怎么單獨(dú)導(dǎo)出一頁(yè)? word導(dǎo)出部分頁(yè)的技巧
在編輯Word文檔時(shí),有時(shí)我們只需要導(dǎo)出其中的部分頁(yè)面,而不是整個(gè)文檔,下面將介紹如何在Word中導(dǎo)出部分頁(yè)面2025-04-14問(wèn)卷星怎么轉(zhuǎn)換成word文檔? 問(wèn)卷星問(wèn)卷調(diào)查導(dǎo)出成word的技巧
在日常工作中,我們經(jīng)常需要將問(wèn)卷星上的問(wèn)卷內(nèi)容導(dǎo)出為Word格式,以便整理和分析數(shù)據(jù),以下是三種簡(jiǎn)單的操作方法2025-04-14word文檔一整頁(yè)怎么截屏? word文檔截圖截一張全的圖片技巧
在Word文檔中想將一整頁(yè)截屏下來(lái),可以通過(guò)使用鍵盤(pán)中的Print Screen鍵和Word自帶的截屏功能等多種方法截圖,詳細(xì)如下2025-04-14word開(kāi)發(fā)工具怎么調(diào)出來(lái)? word工具欄添加開(kāi)發(fā)工具的教程
許多用戶(hù)在使用Word時(shí),可能會(huì)發(fā)現(xiàn)菜單欄中缺少了“開(kāi)發(fā)者工具”這一重要選項(xiàng),這無(wú)疑限制了Word的某些高級(jí)功能應(yīng)用,詳細(xì)請(qǐng)看下文介紹2025-04-14Word文本框中的數(shù)字和英文字母如何進(jìn)行豎排? word文檔排版技巧
用Word進(jìn)行排版成為我們辦公中的主要方式,偶爾我們也可能會(huì)讓文字豎著排版,讓文字豎著排版我們都知道怎么操作,但是如何讓英文字母和數(shù)字也縱向顯示呢?詳細(xì)請(qǐng)看下文介紹2025-03-25word文本框怎么對(duì)齊? word多個(gè)文本框快速批量對(duì)齊的技巧
word中有很多文本框,排列很亂,想要將所有文本框?qū)R,該怎么操作呢?下面我們就來(lái)看看詳細(xì)的教程2025-03-21word分欄后如何設(shè)置頁(yè)碼? Word同一頁(yè)分欄后的文本分別設(shè)置頁(yè)碼技巧
在使用Word進(jìn)行文檔排版時(shí),經(jīng)常需要將文檔分欄,并且希望每欄都有不同的頁(yè)碼,這種效果在Word默認(rèn)的頁(yè)碼樣式中并不存在,需要通過(guò)手動(dòng)插入域來(lái)實(shí)現(xiàn),以下是詳細(xì)步驟2025-03-13word多級(jí)列表怎么修改編號(hào)? Word多級(jí)列表各級(jí)編號(hào)格式批量修改技巧
編輯Word長(zhǎng)文檔時(shí),為了讓文本之間具有層次性,編號(hào)的使用必不可少,那么,對(duì)于編號(hào),你會(huì)使用了嗎?詳細(xì)如下2025-03-13Word頁(yè)面版式設(shè)置:Word創(chuàng)建多級(jí)列表常見(jiàn)問(wèn)題解決辦法
你是否在設(shè)置多級(jí)列表時(shí)遇到了編號(hào)問(wèn)題?今天來(lái)分享創(chuàng)建多級(jí)列表的常見(jiàn)問(wèn)題,別擔(dān)心,這里為你提供全面的解決方案2025-03-13word文檔怎么鎖定排版? 輕松鎖定你的精心布局防止排版錯(cuò)亂
在 Word 文檔中鎖定排版,防止他人隨意更改格式,可嘗試以下兩種方法,輕松鎖定你的精心布局,詳細(xì)如下文所屬2025-03-11