利用VBA在Word中排出漂亮的程式碼
引言
在學習程式設計的過程中,常常會使用word來做筆記,下面我將對如何利用word巨集來進行程式碼的排版進行說明
1.工具
我用的是word2007,word2003和word2010操作也差不多
2.基本操作
從visual studio、QT、Android studio複製程式碼到word時,通常都會自帶高光的,直接複製貼上到word就行了。
但是作為一個精緻的程式媛,怎麼可能只滿足這麼點要求呢,我們通常看到的程式碼除了高光,還有灰色的背景和程式碼行號,下面才是我想介紹的重點了。
話不多說,為了不耽擱各位時間,先上圖,看完圖感興趣的就接著看,覺得沒什麼用的看完圖就可以先撤退了。
通常複製到word中的程式碼如圖1所示,利用VBA進行word巨集的編寫可以為
程式碼新增行號和灰色背景
3.實現方法
開啟word,利用Alt +F11,可以進入VBA,然後在“Normal -> 模組”,右鍵選擇“插入模組”就行了,然後進行程式碼編寫。(Normal是Word開啟時會自動載入的一個模板檔案,把巨集放在這裡,可以保證在任意一個Word文件中都能呼叫。)
部分程式碼
'統計行數
Dim wordCount, lineCount
Set myRange = Selection.Range
lineCount = myRange.ComputeStatistics(Statistic:=wdStatisticLines)
'插入1*2的表格
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1,
NumColumns:= _
2, DefaultTableBehavior:=wdWord9TableBehavior,
AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "網格型" Then
.Style = "網格型"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
'設定程式碼行號
For i = 1 To lineCount - 1
Selection.ParagraphFormat.LineSpacingRule =
wdLineSpaceExactly
Selection.ParagraphFormat.LineSpacing = 12
Selection.Font.Size = 11
Selection.Font.Color = Black
Selection.Font.Name = Tahoma
Selection.TypeText Text:=i
Selection.TypeParagraph '換行
Next
Selection.TypeText Text:=lineCount
Selection.Tables(1).Select
' 背景色為morning的配色方案,RGB為(229,229,229)
With Selection.Tables(1)
With .Shading
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = 15066597
End With
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
.Borders.Shadow = False
.AutoFitBehavior (wdAutoFitContent) '自動調整大小
End With
With Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
' 段落無首行縮排,行間距為固定值12磅
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
.TextboxTightWrap = wdTightNone
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
.AddSpaceBetweenFarEastAndDigit = True
.BaseLineAlignment = wdBaselineAlignAuto
End With
Selection.Font.Size = 11
Selection.Font.Name = Tahoma
' 清除原有的段落底紋
Selection.ParagraphFormat.Shading.BackgroundPatternColor =
wdColorAutomatic
先選中需要進行處理的程式碼,然後點選word中開發工具,點選巨集,執行即可。
也可以通過word選項,自定義,新增巨集快捷鍵,執行時只需要先選中程式碼,然後點選快捷鍵。
詳情可以去我上傳的資源下載哦。
下載資源
相關推薦
利用VBA在Word中排出漂亮的程式碼
引言 在學習程式設計的過程中,常常會使用word來做筆記,下面我將對如何利用word巨集來進行程式碼的排版進行說明 1.工具 我用的是word2007,word2003和word2010操作也差不多 2.基本操作 從visual s
寫出漂亮程式碼的7種方法
很多開發者不願意使用空白,就好像這要收費一樣。我在此並非刻意地新增空白,粗魯地打斷程式碼的連貫性。在實際編寫程式碼的過程中,會很容易地發現在什麼地方加入空白,這不但美觀而且讓讀者易懂,如下:1 function getSomeAngle() {2 // Some code here then3 r
《程式設計珠璣》程式碼之路12:如何用C/C++實現array[-1]並利用它寫出優美的程式碼
我們就以最大子陣列和為例: 最大子段和問題:給一組數,計算最大子段和。 在部落格:最大欄位和的6種解法,解法三中,我們提到了儲存前i項和的操作: cache[i]代表前i-1項之和,因為在c/c++中,cache[-1]會越界,所以如果用cache[i]代表前i項和的話,那麼在用遞推公式
怎樣寫出漂亮整潔的程式碼?聊聊 Clean Code 的編碼、重構技巧
Clean Code,顧名思義就是整潔的程式碼,或者說清晰、漂亮的程式碼,相信大多數工程師都希望自己能寫出這樣的程式碼。 也許這是個千人千面的話題,每個工程師都有自己的理解。比如我,從一個天天被罵程式碼寫得爛的人,逐漸學習成長,到現在也能寫的出“人模人樣”的程式碼來
Python新手寫出漂亮的爬蟲程式碼
BeautifulSoup神器Python一個第三方庫bs4中有一個BeautifulSoup庫,是用於解析html程式碼的,換句話說就是可以幫助你更方便的通過標籤定位你需要的資訊。這裡只介紹兩個比較關鍵的方法:1、find方法和findAll方法: 首先,Beautiful
USGS-EROS項目espa-surface-reflectance中的LaSRC Version 1.3.0模塊利用vs2010編譯出windows64位版本(一)
product 發現 jpeg git clone args dcl 函數 中一 比較 Landsat8衛星的大氣校正目前國內有很多學者都在做,隨便百度一下就能找到很多論文,提出的算法都有各自的亮點,學術研究上都有意義。 但是,問題來了,如果要真正拿出來處理任意一幅La
USGS-EROS項目espa-surface-reflectance中的LaSRC Version 1.3.0模塊利用vs2010編譯出windows64位版本的使用(三)
合成 ast mage files 關系 分享 一周 com window Landsat8大氣校正程序LaSRC是目前最好的,使用方式也夠傻瓜,輸入文件輸出結果。 但有一個限制,就是程序需要預先下載好的MODIS輔助文件來確定水汽、壓強等大氣參數。 如果待大氣校正的l
利用freemarker導出頁面格式復雜的excel
ros 導出excel 比較 命名 xls soft 重命名 分用 實現 剛開始大家可能會利用poi生成簡單的excel,但是遇到需要生成復雜的excel,poi導出excel就比較困難,這時候可以利用freemarker來渲染實現實現生成復雜的excel, 首先將exce
expdp利用表導出無規則的表和其它的信息
dmp object view 查詢 ack flashback trigger ble div 例如需要導入如下的一些表:EX_ARC_EMPEEX_ARC_LOC_PTYEX_ARC_LOC_PTY_CHGEX_ARC_LOC_PTY_CHG_DTLEX_ARC_POS
python 代碼題06 回數是指從左向右讀和從右向左讀都是一樣的數,例如12321,909。請利用filter()篩選出回數
list turn 例如 lte else 代碼 rom 都是 python def is_palindrome(n): return str(n) == str(n)[::-1] output = filter(is_palindrome, range(1, 10
[轉]mysql如何利用Navicat 導出和導入數據庫
iss col water print 就會 方便 int 選擇 結果 MySql是我們經常用到的數據,無論是開發人員用來練習,還是小型私服遊戲服務器,或者是個人軟件使用,都十分方便。對於做一些個人輔助軟件,選擇mysql數據庫是個明智的選擇,有一個好的工具更是事半功倍,對
利用mybatis-generator自動生成程式碼-表對應的類和配置檔案
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configu
php 利用debug backtrace方法跟蹤程式碼呼叫
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
#程式設計師面試京東,當場寫出JS程式碼魔方特效,20K月薪輕鬆到手
今天小編我逛論壇,看到了一位程式設計師小夥子,因為是有了兩年工作經驗,然後去京東面試前端崗,一面二面輕鬆就過了,到了技術面這一塊,小夥乾脆就直接用JavaScript寫了一個魔方特效,最終通過了面試,試用期12K,轉正20K的工資水平,這特效看的小編也服氣,主要是腦洞大,所以我也COPY了一
PCL學習筆記——利用Octree找出存在於點雲B中,不存在點雲A中的點
resolution——八叉樹解析度,即最小體素的邊長(畫素單位) getPointIndicesFromNewVoxels() —— 從前一個緩衝區中不存在的所有葉節點獲取索引 switchBuffers()——交換八叉樹快取,但是先前點雲對應的八叉樹結構仍在記憶體中 // p
利用itchat 10行python程式碼實現微信轟炸
''' 轉載:https://github.com/Gin79/WeChat-Bomb/blob/master/README.md ''' 說明 站在巨人的肩膀上 基於python,這個小程式是用python寫的 使用的是python第三方庫itchat,itc
5分鐘學會Markdown語法,在GitHub上寫出漂亮文字,提升別人閱讀體驗
今天研究下在GitHub中如何漂亮的書寫readme部分 markdown是一種純文字格式的標記語言。通過簡單的標記語法,它可以使普通文字內容具有一定的格式。 1、因為是純文字,所以只要支援markdown的地方都能獲得一樣的編輯效果,可以讓作者擺脫排版的困擾,專心寫作。 2、操作簡單。
Zebra斑馬印表機指令程式設計進階(語言通用)--利用指令繪製出影象列印
之前介紹過Zebra的入門列印,由於Zebra指令繁多,並且自帶字型不能列印中文,如果列印內容中有中文的話,還是推薦大家先用Graphic類先畫好自己想要的image,然後將整張圖片進行列印。而且除錯方便 我另一篇部落格對此有詳細介紹:https://blog.csdn.net/horserol
利用python找出那些被“標記”的照片
環境準備 下面的兩個第三方模組都可以直接通過pip快速安裝,這裡使用py36作為執行環境。 python3.6 requests exifread 思路 遍歷目錄 拉取資料集合 遍歷集合取得exif exi
程式設計師面試京東,當場寫出JS程式碼魔方特效,20K月薪輕鬆到手
今天小編我逛論壇,看到了一位程式設計師小夥子,因為是有了兩年工作經驗,然後去京東面試前端崗,一面二面輕鬆就過了,到了技術面這一塊,小夥乾脆就直接用JavaScript寫了一個魔方特效,最終通過了面試,試用期12K,轉正20K的工資水平,這特效看的小編也服氣,主要是腦洞大,所以我也COPY了一份原始碼