更新於 2023/08/27閱讀時間約 4 分鐘

Excel VBA:第1節 打飯前先領餐具

0.Ctrl+方向鍵:跳到最後一筆


  所有的Excel報表重點都在於持續滾動更新,持續更新之重點在於接著編寫,接著編寫的第一步則是「找到最後一筆資料」。以此推論,Excel中最重要的快捷鍵,「Ctrl+方向鍵」(跳到連續資料的最後一筆)當仁不讓;如然,Excel VBA中最重要的指令也想必是Cells(Rows,Columns).End(Direction)了。(偏見)

  但在進入上面那串指令的說明之前,首先需要先打開你手中的Microsoft Excel,並設置「開發人員」的索引標籤為可視。





  此目錄非彼目錄,這節中想要筆記的是:

  1. 如何開始巨集(VBA)
  2. 初步認識編寫VBA的面板
  3. 儲存啟用VBA的活頁簿檔案

  希望從前曾經是我的問題的問題能帶給你靈感。




0.我居然做了封面。



1.上菜前先擺盤,使用巨集前先確認開發人員索引標籤已存在


  開發人員索引標籤正常情況下並未設為常用,需要另外叫出。
  <檔案→選項>叫出Excel選項表單,從<自訂功能區>中<主要索引標籤>欄位找到<開發人員>選項打勾後確定關閉。


1.找到開發人員選項打勾。


  退出後確認使用的Excel介面新增了「開發人員」索引頁籤。

2.確認開發人員頁籤新增。

  最常使用的功能,第一個按鈕「Visual Basic」。我們在這裡編寫VBA指令,在這裡吃飯。

  打開之後的頁面沒有可以輸入的地方,需要另行打開;<插入→模組>,點擊後會針對這份Excel檔案新增<模組>,打開空白頁面,到這裡才算前置步驟完成。


3.Visual Basic是編輯程式,但打開之後需要另開空白頁面。




2.幾乎所有程式指令的測試都是Hello world,你有想過為什麼嗎


  同一份Excel檔案裡可能可以有複數個巨集(抄寫從ERP系統中導出的資料、整理篩選排序等等,)而每段程式用Sub與End Sub做開頭與結尾。

  人如其名,Sub後可接你對這支程式的命名,下圖範例中我命名這支程式為TEST。在實際操作中,鍵入Sub TEST後按下Enter,相對應的結束語End Sub會自動鍵入。

  Sub與End Sub中間就可以自由設計指令了。編寫完成後按下上方工具列的橫三角形<執行>,會執行現在插入游標所在(如果沒有,則從第一支)程式。

  為了準確執行,指令應有詳盡規範,但沒有(或可以省略)的時候,表示有默認。這裡的範例我用訊息視窗指令:MsgBox。指令成功的話,會在Excel檔案中彈跳出訊息視窗,顯示出在後台設定的訊息內容。


4.執行後彈跳出測試用訊息視窗,表示順利執行。


  範例中的編碼如下:

Sub TEST()

MsgBox ("Hello")

End Sub

  另外,VBA中若為指令,則無視鍵入時的大小寫,一律會自動跳成指令預設的樣子,無須費神切換。


  MsgBox指令的引數全文如下:

MsgBox ( [prompt] [,buttons] [,title] [,helpfile, context] )

  指令後的引數設定了指令會如何呈現。引數如下:

  • prompt:不可省略,為訊息視窗的顯示訊息內文。
  • buttons:可省略,指定訊息視窗的按鈕種類與類型(OK, Yes/No, OK/Cancel等等。)
  • title:可省略,指定訊息視窗的標題。
  • helpfile、context:可省略,如按鈕種類指定Help,可指定該按鈕鏈接的Microsoft內建Help檔案。如指定helpfile,則context亦必須指定。


  詳細引數本節先按下不表,但能先大略理解指令與引數之間的相互關係,以及執行後的呈現樣子。

  範例中僅指定了prompt引數(即訊息內文,)因為純文字,須以雙括號""夾註。按下上方功能表的<執行>後,可以看見訊息視窗按照指令彈出。




3.曲終人散,存檔明天再來


  到了要存檔的時候了。VBA編輯頁面上方的功能表中有存檔標誌,點擊後會同時儲存目前編寫的VBA與Excel檔本身。

  不過默認的副檔名格式(.xlsx)無法儲存帶有VBA的Excel檔,需要設定存檔類型為「啟用巨集的活頁簿」(.xlsm)。

5.存檔。


  下班了,明天見。




分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.