2015年7月28日 星期二

巨集(Macro)在Excel中的應用

巨集(Macro)簡介

如果把巨集比喻成一首歌,那麼VBA就是穿插其中的音符,
在一張名為Excel的紙上被譜就、被記錄、被演奏。

用非文青的語言來說,巨集是用VBA記錄下來的一連串動作的集合,
並只能在Excel中執行。

巨集可以用錄的,就像錄音一樣你做什麼動作它就保存下什麼動作;
另外也可以透過Excel中的編輯器來撰寫,兩者的優劣在上篇文章已經有提及。

由於錄製的巨集不具有"邏輯判斷"的功能,它只知道你在哪個位置做了什麼事情,
因此就實用性而言是大大輸給了人為撰寫的VBA巨集的。


錄製巨集(Record Macro)

錄製巨集功能被放在Excel視窗的左下角(如下圖),














點選並按下確定錄製後會開始記錄你的一舉一動,
因此在錄製之前一定要先想好接下來的每一個步驟,
萬一步驟做錯了或者是做了一堆無意義的動作,
那麼可能一切就要從頭來過了。

但幸好錄製巨集時,只有新的動作出現才會再錄製下去,
因此忘記下一步時最好的動作就是不要動作,想清楚之後再繼續Click Click。


巨集錄製範例

以下表(圖)做為一個簡單的範例:
























每天更新收盤價後,
"手動由大到小排序現金殖利率,並且篩除扣抵率10%以下的個股"就是機械性工作,
而且沒有使用到較複雜的邏輯判斷,我們就可以用巨集來自動化這個任務。

首先點選左下方的record macro輸入巨集名稱跟其他資訊,
建議巨集名稱一眼就看得懂它的功能,
否則日後試算表日趨複雜時,
你會再也想不起來當初那個叫tt或111的巨集是什麼東西。

















注意到左下角的圖示變成一個小正方形,
滑鼠移上去可以看到目前處於巨集錄製中的狀態,
接下來就是把你"機械化"的動作重複一次給電腦看了。

先排序現金股利殖利率所在的列(Column),
接著再用篩選(filter)掉扣抵稅額低於10%的個股,
最後停止錄製巨集即可。
(點選左下角的那個小正方形即可停止錄製)


巨集錄製完成之後

巨集錄製完成之後,
該份Excel表必須儲存為xlsm格式才能把巨集儲存下來。
























日後打開這份Excel文件(WorkBook),
只要按Ctrl+w或者在開發者欄位中執行該巨集就可以自動化這份報表囉。

1 則留言: