不想再當「裝忙」上班族?善用 AI 與 VBA,打造一鍵完成的自動化工作流
1. 前言:你還在手動複製貼上嗎?
在我的諮詢經驗中,常看到辦公室職員每天上演同樣的劇本:從政府開放平台下載「台北市住宅竊盜」資料,手動打開 CSV、複製、貼上到 Excel,再費力地清理格式。
許多人為了避免做太快被老闆交派更多雜事,選擇「裝忙」來應付。但我要告訴你,真正的專業不是比誰工作時間長,而是比誰能「一鍵完成」。學習自動化不再是程式設計師的專利,而是現代職場人的生存必殺技。
2. 別捨近求遠:為什麼 VBA 依然是 Excel 自動化的首選?
很多學生問我:「老師,現在不是都在學 Python 嗎?」我常笑著用一個隱喻回答:這就像你大老遠跑去國外買東西,回家一看標籤竟寫著「Made in Taiwan」。
如果你處理的資料最終目的地就是 Excel(例如做樞紐分析、折線圖),那麼 VBA 才是最高效的原生工具。
專家觀點: 除非那個任務是非 Python 不可(例如深度學習或大型自動化系統),否則在 Excel 環境下,直接用 VBA 才是「聰明工作」的最佳實踐。
3. AI 是你最強的助教:讓 ChatGPT 幫你寫出爬蟲與除錯
現在,你不需要從零背誦語法。透過 ChatGPT,你可以迅速生成抓取資料的 VBA 程式碼。在我的教學中,我最推薦使用 QueryTable 物件,它是處理 CSV 資料最快、最穩定的方式。
與 AI 互動的【高效提示詞】範本:
「請幫我寫一個 VBA 程式,使用 QueryTable 物件抓取 CSV 資料。下載網址為:[貼上台北市住宅竊盜資料網址],資料請匯入到目前工作表的 A1 儲存格。」
技術細節:編碼是成敗關鍵 如果抓下來的資料是亂碼,通常是編碼選錯了。這會讓你一整天的心情都很差,請記住這兩個關鍵數值:
- Big5 (繁體中文): 設定為
950。 - UTF-8: 設定為
65001。
若執行時出現「陣列索引超出範圍」,通常是工作表名稱(如 Sheet1 與 工作表1)對不起來。這時只需告訴 AI 你的工作表名稱,或請它改成 ActiveSheet 即可解決。
4. 錄製巨集:三十年不退流行的「無代碼」開發術
在我看來,錄製巨集是 Excel 隱藏最深的「秘密武器」。如果你不知道如何向 AI 描述複雜的整理動作,那就「做一遍給電腦看」。
錄製前的關鍵在於「彩排」。以「插入年份」與「插入區域」為例,先練習一次滑鼠右鍵插入欄位、輸入公式(如 LEFT 或 MID)與向下填滿的動作。只要彩排順暢,錄製功能就能將你的動作完美轉化為 VBA 物件。
5. 代碼精簡化:從「動作記錄」進化到「高效腳本」
錄製生成的程式碼通常很冗長,因為它記錄了大量的 .Select(選取動作)。這會拖慢執行速度。
我建議的黃金流程是:錄製巨集 → 將代碼貼給 AI → 要求精簡化 (Refactoring)。 AI 能將繁瑣的選取動作優化為直接對 Range 物件的操作,並幫你加上清楚的註解。這不僅讓程式跑得更快,也讓你從模仿中學會專業的寫法。
6. 動態追蹤資料列:讓你的工具具有「成長性」
新手寫的程式常會卡在「固定範圍」(例如 A1:D4345)。如果明天的資料增加到 5000 列,舊程式就會漏掉新資料。
從「堪用腳本」躍升為「專業工具」的關鍵,在於使用 End(xlUp).Row 技術。 它的邏輯很聰明:想像程式先跳到工作表的最底端(第 104 萬列),然後「向上跳」直到撞到最後一列資料。透過這個動態追蹤的數字,無論資料量如何增減,你的自動化工具都能精準涵蓋所有欄位。
7. 結構化工作流:利用 Call 指令串聯任務
一個專業的自動化流程是由多個小模組構成的。我習慣將任務拆解為:
Sub 下載資料Sub 插入年份Sub 插入區域
最後,建立一個主程式,利用 Call 指令將它們串聯起來。你在 Excel 介面只需設定一個「一鍵啟動」按鈕,整套邏輯鍊就會自動跑完,幫你省去手動操作的風險與時間。
8. 職涯啟發:效率換取的是你的「選擇權」
提升技術不僅是為了節省時間。我有個學生原本只是基層助理,透過這套自動化方法,不僅效率提升,更展現了邏輯與解決問題的能力。後來他成功轉職為「專案經理 (Project Manager)」,薪水更是呈「三級跳」式成長。
當你擁有了別人沒有的效率,你就擁有了與老闆談判或換環境的籌碼。
職場最具震撼力的一句話: 「給香蕉當然只能找到猴子,給獅子當然不合。」當你成為職場上的獅子,你可以選擇森林,而不是等著被挑選。
9. 結語:下一個自動化大師就是你
我們從資料爬取、錄製、精簡到結構化整合,完整走了一遍自動化之路。這不僅是技術,更是一種思維的轉變。
最後,留給你一個思考題: 「如果你的例行工作每天能節省兩小時,你會把這些時間投資在哪裡,好讓自己從『事求人』變成『人求事』?」












沒有留言:
張貼留言