1. 程式人生 > >利用VBA在Word中排出漂亮的程式碼

利用VBA在Word中排出漂亮的程式碼

引言

在學習程式設計的過程中,常常會使用word來做筆記,下面我將對如何利用word巨集來進行程式碼的排版進行說明

1.工具

  我用的是word2007,word2003和word2010操作也差不多

2.基本操作

  從visual studio、QT、Android studio複製程式碼到word時,通常都會自帶高光的,直接複製貼上到word就行了。
  但是作為一個精緻的程式媛,怎麼可能只滿足這麼點要求呢,我們通常看到的程式碼除了高光,還有灰色的背景和程式碼行號,下面才是我想介紹的重點了。
  話不多說,為了不耽擱各位時間,先上圖,看完圖感興趣的就接著看,覺得沒什麼用的看完圖就可以先撤退了。
圖1


圖1

圖2
圖2

  
  通常複製到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了一份原始碼