之前看本丸諒《文科生也看得懂的工作用統計學》深受啓發,於是抽了點時間去學習excel,在成本效益的角度來說,我個人真的還蠻推薦各位去增強一下excel技能,我或者也可以試著寫一本《文科生也應該看得懂的excel》。
內容目錄
學習的方法:
我個人是以解決問題的方法學習,尋找相關的函數或VBA寫法。回顧這一年,寫出了一堆解決日常工作的程式,感覺好像多了一堆免費幫手去協助工作,而且在文科的行政世界,會寫程式很容易讓人看高一線,因為你懂一些超出其他人認知的艱深東西,謙卑地懂得艱深的東西會讓人覺得很厲害,當然重點是有實際作用,能夠或多或少減輕其它人的工作量,操作也不會太難,最好是一鍵完成。
開發使用EXCEL的能力,真的不用先把EXCEL教科書拿出來一章一章順著來讀,就像你不會拿著字典來學習語言一樣,當然我以前也認識一個朋友是以字典來學習語言,效果好像也不錯,不過真的是少數中的少數。如何拆解你的問題也是一個很重要的部分。舉個例子,我之前有一個工作是要把各間公司對不同物品的報價列出,然後再根據項目評分,如A、B、C公司。
各間公司出價的價格最低者可獲60分,其它公司按最低價比例計算得分。品質由某專責門評定。交貨期最短得10分,其它公司按最短期的比例計算得分。於是幾千到幾萬件物件,不同公司比價得分,即使知道使用固定某些函數,每次操作下來也是相當費神,也難以避免不會有出錯,於是我就想能不能設計一些程式來協助工作,這就有了需要解決的問題,補充一點,在這之時,我的EXCEL水平大概就是會用SUM加總的程度^^”,應該很多人比我有更多的領先優勢,原先作業範本使用的一些函數VLOOKUP都不知道是啥,原來連這個都不懂的人會被辦公室同事嫌棄EXCEL差,現在回想起來真的有點好笑,連VLOOKUP都不懂還想搞什麼自動化程式呢?
VBA工具的準備:
練習的第一步當然先要將VBA這個工具準備好,EXCEL裡面會有,不用特意去安裝,按下面步驟操作。
- 檔案
- 增益集
- 執行
- 勾選分析工具箱–VBA–>確定
- 開發人員
- Visual Basic
- 選擇運行程式的頁面,如你需要控制的工作表。
- 輸入程式碼的地方。
第一個練習:
我們從最簡單的練習開始,用程式賦予儲存格數值,然後彈出一個訊息。撇號﹝’﹞這符號後面是註解,但是如果你們在網頁直接COPY程式的話,撇號和引號可能會變成另一個符號,如果無法執行,請把這兩個符號修正或直接刪除註解部份。
sub try() ‘這個符號裡面是註解,為這個程式定個名字
Dim good As String ‘宣告這個命名為good的變數為string格式
good = “Hello World!!” ‘將這個變數賦予Hello World!!,字串要用引號﹝””﹞裝住
Cells(2, 3) = good ‘將這個變數good的值賦予第2列,第3行儲存格,即C2
msgbox good ‘會彈出一個視窗,顯示C2裡面的值
End Sub
程式寫好之後按F5執行。
是不是很簡單呢!這樣就完成第一個程式的基本寫法。然後再慢慢加入FOR、IF THEN這些用法,很多東西都做得出來,好像我先前分享的經驗,我一開始寫出的是6間公司的比價,但是後來發現,每多寫一間公司,程式是原本長度的一倍,經過其它程式的寫作,才構想出無限間公司的寫法,就好比數學公式的推論,很多時候都要思考趨近無限大的意義,我想概念也是這樣。反而,無限間公司的比價程式要比之前簡短幾百行,只是需要些花點心思才想得出來。
第二個練習:
接下來我們做另一個練習打開某個路徑的檔案。我當時是在想如何優化操作這件事,怎樣可以讓其它人也便利使用呢?某些檔案是由別的部門提供,經由某個系統在電腦中生成,我發現每次生成都會對應某個文件編號放在指定路徑,於是只要找到相關檔案的路徑就可以用程式來操控這些文件。
這個練習我們先要建立一個Excel檔,檔名叫save,然後放在c:\裡面,然後就會自動打開那個生成的檔案。
sub try2()
Dim doc as string
doc = “save” ‘將save這個值賦入doc這個變數裡面
workbooks.open “c:\” & doc & “.xlsx” ‘用&來連結字元和變數
end sub
按F5執行會打開名為save的檔案,如果有error發生,問題很有可能發生在路徑上面,又或者副檔名。
結語:
其實每一個處理步驟都是一個或數個問題,根據需要解決各個部份,最後,將各個部份再組合在一塊,變成按一個鍵就把所有東西處理好,感覺就會很神奇了。而且,越看得多Excel的相關資料,越會發現它的強大之處,我記得有一張帖文,有人會想用VBA連結到某網站去做登入之類的,最後有沒有成功我不知道,有人回文說為什麼你不直接點進網站login,樓主回說這樣login好像很厲害,我個人也覺得這樣很厲害,其實光是能夠想到用這個寫法已經很厲害了。就像我之前構想的股式率迴歸的程式也是這樣一步一步架構出來,網上抓資料、分析資料、跑出圖表等等。雖然我不是專業編程人員,學習時間也只有1年,但這種程度我想在辦公室應用已經相當足夠了,所以我會說這是很好效益的事情。
基本簡單的常用語法可以參考這個網址,GT WANG這個人寫的東西條理很不錯,如果要再進階其它東西就慢慢從網路探索吧,希望本篇心得能夠讓各位讀者踏出學習VBA的輕輕一步。
如需要進一步使用VBA去yahoo finance去抓資料輔助投資,可參考下面這一篇,《EXCEL VBA yahoo finance網路抓資料心得》將抓資料的難點提供參考。
又或者想要用Excel去控制Word的話,可以參考這一篇《自學Excel VBA系列-如何用VBA控制WORD?》。控制OutLook的話,參考這篇《自學Excel VBA系列-如何用VBA控制OutLook?》
如果有任何疑問?歡迎留言給我,大家可以互相探討,增加學習的效益。