VBA教學:Function用法介紹,如何自定義Excel日期函數

VBA設計程式時跟Excel一樣必須善用各種函數,本文以日期函數為例,介紹VBA函數用法,進而說明如何利用Function自定義函數,讓Excel可以直接用公式得到民國年度。

一、Excel日期函數

Excel函數非常好用,例如TODAY這個函數可以傳回今天的日期,它是比較特別、不需要任何參數,想要進一步瞭解這個函數,可以叫出「函數引數」視窗的參考說明。另外將TODAY和YEAR這兩個函數組合,便是目前的年份,注意到它是西元的年份。

關於Excel如何輸入函數公式的技巧,可以參考贊贊小屋相關文章

VBA教學:Function用法介紹,如何自定義Excel日期函數 1

二、VBA函數用法

函數不僅僅是Excel才有,其實大部分程式語言都有函數,VBA當然也不例外。在此設計一行簡單的程式碼,其中VBA的Date函數作用和Excel的Today一樣都是傳回今天日期,另外在程式還用到了VBA指令vbNewLine進行換行,並且還設計了MsgBox和 Format進行文字訊息視窗顯示及格式轉換。

關於Excel如何進入VBA編輯器,開始設計並執行程式,可以參考贊贊小屋相關文章

一張含有 文字 的圖片

自動產生的描述

三、MsgBox視窗

執行程式,果然在Excel會跳出視窗顯示今天的日期,對照上個步驟程式碼應該會更加瞭解程式的語法結構。

VBA教學:Function用法介紹,如何自定義Excel日期函數 4

四、VBA Function

VBA除了使用既有函數之外,還能建立自定義函數,它是使用Function結構語法進行設定。例如這裡很簡單的設計一個「今天是」的函數,這裡的VBA自定義函數相對簡單,和本文第一個步驟所看到的TODAY一樣,不需要任何的參數便會計算出或者說是傳回今天的日期,並且Function自訂函數可以在VBA程式本身被使用,例如這裡再設定了一個MsgBox,它要顯示的文字就是VBA自定義函數所算出來的今天日期。

一張含有 文字 的圖片

自動產生的描述

五、Excel自訂函數

VBA所設計的函數不但是在VBA程式中引用,在Excel也可以使用VBA自定義函數,用法就跟使用一般函數相同,因此截圖所看到的不僅是執行上個步驟程式跳出文字訊息視窗,而且在Excel還直接使用VBA函數得到今天日期,公式為「=今天是()」。

一張含有 文字 的圖片

自動產生的描述

六、If判斷語句

Excel函數通常會有參數,而在VBA也可以設定參數。例如在此設計一個自定義函數:「Function 今年是(參數)」,括號裡面代表有一個參數,接著在Function內部設計程式,參數值是1的話要利用Date和Year先得到今年的西元年度,再經過簡單的計算得到民國年度,如果參數不是1的話,傳回原本的西元年度。

一張含有 文字 的圖片

自動產生的描述

七、民國年度函數

在Excel驗證上個步驟所設計的VBA自定義函數,果然依照不同的參數值,分別得到了民國年度跟西元年度。

一張含有 桌 的圖片

自動產生的描述

Excel函數及VBA Function

本篇文章一開始提到Excel函數非常好用,而如同操作步驟所看到的,VBA程式設計可以進一步創造自定義函數供Excel使用,如此等於如虎添翼,讓Excel在工作中運用時更加的得心應手。

每天學習,每天充電:VBA自動化文章合輯

VBA教學:Function用法介紹,如何自定義Excel日期函數 10
歡迎加入Line社群,口袋裡的VBA小教室!