所有的Excel報表重點都在於持續滾動更新,持續更新之重點在於接著編寫,接著編寫的第一步則是「找到最後一筆資料」。以此推論,Excel中最重要的快捷鍵,「Ctrl+方向鍵」(跳到連續資料的最後一筆)當仁不讓;如然,Excel VBA中最重要的指令也想必是Cells(Rows,Columns).End(Direction)了。(偏見)
但在進入上面那串指令的說明之前,首先需要先打開你手中的Microsoft Excel,並設置「開發人員」的索引標籤為可視。
此目錄非彼目錄,這節中想要筆記的是:
希望從前曾經是我的問題的問題能帶給你靈感。
開發人員索引標籤正常情況下並未設為常用,需要另外叫出。
<檔案→選項>叫出Excel選項表單,從<自訂功能區>中<主要索引標籤>欄位找到<開發人員>選項打勾後確定關閉。
退出後確認使用的Excel介面新增了「開發人員」索引頁籤。
最常使用的功能,第一個按鈕「Visual Basic」。我們在這裡編寫VBA指令,在這裡吃飯。
打開之後的頁面沒有可以輸入的地方,需要另行打開;<插入→模組>,點擊後會針對這份Excel檔案新增<模組>,打開空白頁面,到這裡才算前置步驟完成。
同一份Excel檔案裡可能可以有複數個巨集(抄寫從ERP系統中導出的資料、整理篩選排序等等,)而每段程式用Sub與End Sub做開頭與結尾。
人如其名,Sub後可接你對這支程式的命名,下圖範例中我命名這支程式為TEST。在實際操作中,鍵入Sub TEST後按下Enter,相對應的結束語End Sub會自動鍵入。
Sub與End Sub中間就可以自由設計指令了。編寫完成後按下上方工具列的橫三角形<執行>,會執行現在插入游標所在(如果沒有,則從第一支)程式。
為了準確執行,指令應有詳盡規範,但沒有(或可以省略)的時候,表示有默認。這裡的範例我用訊息視窗指令:MsgBox。指令成功的話,會在Excel檔案中彈跳出訊息視窗,顯示出在後台設定的訊息內容。
範例中的編碼如下:
Sub TEST()
MsgBox ("Hello")
End Sub
另外,VBA中若為指令,則無視鍵入時的大小寫,一律會自動跳成指令預設的樣子,無須費神切換。
MsgBox指令的引數全文如下:
MsgBox ( [prompt] [,buttons] [,title] [,helpfile, context] )
指令後的引數設定了指令會如何呈現。引數如下:
詳細引數本節先按下不表,但能先大略理解指令與引數之間的相互關係,以及執行後的呈現樣子。
範例中僅指定了prompt引數(即訊息內文,)因為純文字,須以雙括號""夾註。按下上方功能表的<執行>後,可以看見訊息視窗按照指令彈出。
到了要存檔的時候了。VBA編輯頁面上方的功能表中有存檔標誌,點擊後會同時儲存目前編寫的VBA與Excel檔本身。
不過默認的副檔名格式(.xlsx)無法儲存帶有VBA的Excel檔,需要設定存檔類型為「啟用巨集的活頁簿」(.xlsm)。
下班了,明天見。