[學習] VBA學習心路歷程和資源分享 (230/365)

大概一個月多月前對自己許下學習VBA的心願,目的是要將我最討厭的工作內容自動化。這段時間以來,我找了許多資料,每天晚上自己研究或是請老王教我,透過各種不同的方式自學VBA。一個半月過去,我從一個程式絕緣的零基礎笨蛋,到現在已經可以自己寫出一些功能,並且成功自動化一部分的工作內容。

這篇文章跟大家分享我的VBA學習資源,希望能幫助跟我一樣對程式零概念,甚至是有點恐懼的人。

VBA是什麼

這裡不用專業術語,用我自己的話來說。VBA就是內建的程式撰寫工具,能幫助你自動化各種需要重複執行的動作。如果你每個月都需要處理一樣的報表,尤其那種需要彙整資料、篩選資料,做加總或是一直執行複製貼上等等計算的工作,那你真的真的非常值得研究一下VBA。儘管你可能會覺得「每個月做這些事情其實沒花太多時間,只是有點煩而已」,但是,一旦你看到VBA能夠一鍵幫你完成你需要花十分鐘或是需要按十次鍵盤滑鼠才能完成的動作,你就會懂這到底有多迷人。

以我為例,我想要利用VBA進行以下動作的自動化:

  • 整理海量原始資料的格式,包含日期格式、數字格式、對齊、自動取代文字等等
  • 自動計算所需欄位的加總,並在表格下方產製出一個資料統計的表格
  • 一鍵刪除所有不需要的欄位
  • 自動將資料會製成樞紐分析表,並同時自動畫出柱狀圖

零基礎的人建議看架構完整的基礎課程

運用網路資料自學已經是現代人必備的能力,我原本也以為我可以透過google和youtube的資源,將拼揍出VBA的完整面貌。然而,因為我是零基礎,對撰寫程式又有某種程度的恐懼,自己摸索了一兩週之後,發現google和youtube的資源雖多,但都不夠有系統性且比較片段,因此,最後決定尋找網路課程,讓自己先建立完整的基礎概念。

這次我選擇的課程是hahaw好學校的玩轉數據與資料:Excel VBA 入門教學,選擇理由是因為課程評價蠻好的,看到很多表示「適合初學者」的評價。實際上課之後,覺得真的非常淺顯易懂,老師講話很慢(所以我都轉兩倍速),內容提到的功能也非常實用,老師詳細說明如何透過錄製巨集的方式,建立對程式碼的概念,讓你可以迅速製作出你的第一個VBA,之後從工作上經常使用到的報價單製作,到生活上可能會用到的「搶票系統」或是「自動抓取網路上的股價」之類的。儘管我沒有全部看完,但我覺得這個課程建立對於建立我的基本概念以及信心非常有幫助。

釐清自己想要做什麼,寫下步驟流程圖再一一破解

上述的網路課程裡面,也有教我們拆解問題的邏輯,以及如何在網路上找資料。你可能會想,這有需要教嗎?不要懷疑,真的有。第一次寫程式,一開始覺得自己很像無頭蒼蠅,常常寫一句測試一句,但卻沒辦法把所有的功能拼湊在一起。後來我仔細回想自己想做的功能是由哪些動作組成,把平常自己手動的步驟,一一拆解再按照流程寫下來,然後再一個一個功能去網路上找code破解,才開始進行得比較順利。寫下流程把程式區分成小任務之後,每次解決一個問題就能在清單上打一個勾,也比較有成就感。

找幾本易懂的工具書

一面寫的過程中,我發現我需要的功能其實並不基礎,甚至有點進階,需要更多深入的說明,或是針對一些主題(畫圖、樞紐)之類的,想要有更完整的內容來參考,因此我到圖書館找相關書籍。這是我第一次閱讀這種「程式書」,以前看老王在那邊讀Java 之類的,每本都厚到像磚頭,翻開內容那些程式碼都像外星文字,沒想到自己現在也能讀這種書。

面對一大堆的書籍真的不知道怎麼選,原本一心想說要找最新的書,但老王建議我「讀幾段,看你看得懂誰寫的」,雖然是很理所當然的建議,但對於當下被程式碼嚇傻的我來說真的蠻有用的。程式的基本邏輯都差不多,因此與其找新的,不如找「好懂的」書。我後來選擇下面這兩本(圖書館都找得到,而且應該不難借),儘管都是很舊的書,但作者的寫法很像「直接在跟你說話」,好比書裡會說「你可能會覺得這個功能太難了,那也沒關係,讓我們先把這件事情當成一個原則記起來,之後有個印象就好」,雖然有點像自言自語,但我很喜歡那種對話的感覺,畢竟自學嘛,總是會有點孤獨無助。

借回這些書之後,我先從目錄尋找自己需要的功能去讀,然而,寫到一半發現一些基礎觀念好像不夠清楚導致不斷卡關,所以後來還是從頭快速翻閱一次,第一次看不懂的內容,看第二次、第三次真的就慢慢懂了,所以大家在學習的時候真的不要一次看不懂就覺得灰心,很多東西就是這樣,天天接觸就會產生熟悉感,產生熟悉感就比較不會害怕,也更容易接受

善用google大神和網路論壇

想要做什麼功能,直接把功能的關鍵字加上VBA一起放上google搜尋,就會跑出非常多的解決方案,如果發現沒有你要的,就換句話說再查一次,中文行不通就用英文。找出來的程式碼如果不懂,可以再把那個程式碼拿去google。google搜尋結果一定會有很多網路論壇的內容,點進去會看到很多人在裡面發問,以及很多高手在裡面回答問題,我比較喜歡的是https://stackoverflow.com/ 這個網站,所以多半會去看來自這個網站的搜尋結果,回答討論串裡面如果有打綠色勾勾的,就是可以參考的最佳解喔!

我有一位自學程式的高手朋友,他說他自學的時候也受到這個網站很多幫助,不管再笨的問題,上面都會有人好心幫助你。他自己學成之後也會到上面回答問題,幫助有需要的人。

VBA的學習我也還在半路上,希望以上分享能讓有興趣的人,少一點恐懼茫然,也省掉一些摸索的時間。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s