讀古今文學網 > 別怕,ExcelVBA其實很簡單 > 3.10 合理地組織程序,讓代碼更優美 >

3.10 合理地組織程序,讓代碼更優美

編程就像做事,得講究條理。

先做什麼,後做什麼,安排好了,程序才不會改錯。

除了在操作上要有條理之外,也應盡量讓代碼條理清晰,便於閱讀。所以,在編程時,除了要遵循VBA的語法規則外,還應養成一些良好的習慣。

3.10.1 代碼排版,必不可少的習慣

兩篇同樣的稿紙,是否經過精心排版,對讀者的吸引力肯定不一樣。要想讓自己編寫的程序清晰易懂,排版的過程也必不可少。圖3-52所示為排版前後的代碼。

圖3-52 排版前後的代碼

3.10.2 怎樣排版代碼

縮進,讓代碼更有層次

縮進可以使程序更容易閱讀和理解,在VBA中,過程的語句要比過程名縮進一定的字符,在If、Select Case、For…Next、Do…Loop、With語句等之後也要縮進,一般縮進4個空格,如圖3-53所示。

圖3-53 縮進的代碼

但在縮進某行或某塊代碼時,並不用手動在代碼前敲入4個空格,可以選中代碼塊(如果是一行,只需將光標定位到行首而不用選中它),按下Tab鍵(或依次執行【編輯】→【縮進】菜單命令)即可將代碼統一縮進一個Tab寬度,如圖3-54所示。

圖3-54 利用菜單命令縮進代碼塊

如果選中已縮進的代碼,按<Shift+Tab>組合鍵(或依次執行【編輯】一【凸出】菜單命令),則將選中的代碼取消縮進一個Tab寬度。

Tab寬度默認為4個空格,可以在【選項】對話框裡修改如圖3-55所示。

圖3-55 設置Tab寬度

更改長行代碼為短行代碼

當一條語句過長時,可以在句子的後面輸入一個空格和下劃線(—),然後換行,把一行代碼分成兩行。如:

雖然可以把一行代碼分成兩行、三行甚至更多,但盲目分行卻不是好習慣,一般當一行代碼的長度超過80個字符時,才考慮分行。

把多行合併為一行

在第一行代碼後加上英文冒號,可以接著寫第二行代碼。通過這樣的方式可以把多行短代碼合併成一行代碼。

儘管可以把多行代碼寫在同一行,但是這樣會給閱讀增加許多麻煩,所以除非必須需要,否則並不提倡這樣做。

3.10.3 註釋,讓代碼的意圖清晰明瞭

註釋就像商品的說明書,介紹代碼的功能及意圖。

編寫的程序有什麼用途,可以通過註釋語句作簡要介紹,讓代碼更加易讀易懂。

添加註釋語句

註釋語句以英文單引號開頭,後面是註釋的內容。可以放在代碼的末尾,也可以單獨寫在一行,如圖3-56所示。

圖3-56 為代碼添加註釋

當註釋語句單獨成一行時,還可以使用Rem代替單引號。

相信我,多數人不出3個月就會忘記自己寫的程序代碼的用途。所以,哪怕只是為自己,也應該為較為重要的代碼添加註釋。

妙用註釋

在調試程序時,如果不想運行某行代碼,可以在代碼前加上單引號(或Rem),讓它成為註釋語句,而不用刪除它。當要恢復這些代碼時,只要將單引號(或Rem)刪除即可(如圖3-57所示),這個技巧在調試代碼時經常都會用到。

圖3-57 註釋某句不需要的代碼

如果要註釋或取消註釋一塊代碼,還有簡單的方法,如圖3-58所示。

圖3-58 批量添加註釋

圖3-58 批量添加註釋(續)

如果要取消註釋,把代碼還原成普通代碼,就選中註釋代碼塊,單擊【編輯】工具欄中的【解除註釋塊】按鈕,如圖3-59所示。

圖3-59 批量取消註釋