VBA TimeValue是很基本的時間序列值觀念,程式專案有涉及到時刻計算都會用到,本文教你2個最常見的相關函數用法,設計具體範例,如何做出會說話的Excel時鐘。
目錄
Toggle一、VBA時間函數
設計VBA程式碼,這裡用到時間函數Now,它會傳回電腦目前的系統時間,注意到在設定儲存格對象的屬性時,預設為儲存格的值,因此後面的「.value」可加可不加。另外由於Excel同樣時間有很多不同的顯示格式,最後一行用到了Excel數字格式代碼的VBA語法,設定要顯示的時間格式。

二、三種時間格式
執行「Sub A_現在幾點了()」程式,從資料編輯列的公式可以看到實際時間後面加一個AM,這個通常是在一開始電腦設定時區的標準習慣形式,然後在儲存格A1在Excel預設的顯示格式,沒有秒也沒有日AM,A2則是程式預先定義想要顯示的格式,如此三個互相參照會更加清楚。

三、TimeValue函數
在瞭解了VBA時間函數NOW之後,再介紹在設計程戈時很有可能會用到的TimeValue函數,作用是某一段時間值,例如這裡的「Now+TimeValue」語法,便是在目前時間再加上某個時間區段,「Now + TimeValue(“00:00:05”)」代表是現在再加上5秒鐘之後的時間,因此可得到TimeValue的唯一參數指的是以時分秒設定的時間值。

四、五秒後的時間
再回到Excel驗證一下VBA程式。果然看到左邊是現在的時間,右邊則是加上5秒鐘之後的時間。

五、Application.Speech
通常在遇到比較不熟悉的VBA語法時,例如本篇文章所介紹的Now和TimeValue,除了像先前步驟所提到的寫入儲存格值的測試方式,或者這裡的MsgBox函數,其實還可以讓VBA直接講話,也就是這裡看到的Application.Speech,而且注意到VBA不但會講英文,它還會講中文!

六、VBA講中英文
執行程式果然跳出一個MsgBox視窗,接著在文章比較沒有辦法呈現,讀者有興趣可以參考本篇文章最下面所附的相關贊贊小屋YouTube影片,可以實際聽到VBA是怎麼講話的。

七、VBA程式鬧鐘
在瞭解了VBA時間函數及講話函數之後,最後合併應用,便可以設計一個VBA程式小鬧鐘。這裡的「Application.OnTime」指的是在某個時間點執行程式,所要執行的程式「procedure」便是「時間到了」。

Excel VBA程式專案
這篇文章所用到的程式語句並不會很複雜,從字句上大概可瞭解其作用,透過這個簡單翻譯可以,重點是介紹VBA特有的函數,可以將時間延後,也可以講話,相較於Excel函數而應該算是特殊功能。雖然VBA原始目的是自動化操作Excel,但畢竟VBA本質上是Visual Basic程式語言,因此也能像這篇文章所看到的設計簡單的程式專案。
本文章相關影片:

贊贊小屋VBA教學中心:
Excel巨集錄製教學、Excel巨集程式、VBA編輯器、VBA自學入門、VBA基礎語法、VBA基本應用、VBA UserForm、VBA VLOOKUP。
取得範例程式請前往VBA社團,訂閱請加入VBA Line社群。
VBA課程推薦:零基礎入門進階的20小時完整內容