請注意這個翻譯,參數,在表達上的有限性,參數不一定是數字,如上例,到哪裡吃是文字,吃些什麼是文字,哪天去吃是日期、跟誰共餐是文字、預算上限則是數字。
做一件事,沒有任何參數的狀況雖不多見,但也不是全然沒有。例如我說我很累,現在就想小睡一下,我可以不說在哪裡睡、要睡多久,我就是想立即小睡一下,因為我很累,所以立刻就睡著了,這件事就也做完了,不須任何參數也可以做完。
當我們自己寫 Sub 時,就是在自己定義函數(當然,函數較嚴謹的定義並非如此,但可以先忽略)、自己打造一些該語言沒有的功能。一個程式語言,會先提供它認為多數程式設計師都用得到的基礎建設、基本零件,但卻不可能假設自己知道,世界上所有程式設計師會想設計些什麼程式,因此,到目前為止,沒有一個語言,會先提供好一個叫做 "憤怒鳥" 的暢銷手機遊戲程式,你必須自己寫。
還記得左右括弧嗎? 與 Sub 相同,函數的長相就是這樣:
Function <自己取的函數名稱>(參數 1, 參數 2, 參數 3...)
(你要寫的程式碼在這裡)
<自己取的函數名稱> = <某個結果>
End Function
當然,也可以沒有參數(只是不多見),就如同我們之前寫的程式那樣。
與 Sub 的結構一模一樣,只是名稱變成了 Function。
當你使用 Excel VBA 的內建函數時,也是一樣的長相:
left("公分", 1) ==> left 就是函數名稱,"公分" 與 1 就是參數。函數與 Sub 最大的不同點,在於函數有個 "傳回值",例如上述這個 left("公分", 1),傳回值就是 "公"。