VBA Time 函數:取得系統目前的時間

VBA Time 函數:取得系統目前的時間

📅 發布日期:2026-09-01 🏷️ 分類:日期與時間 VBA 函數
💡 函數速查卡
函數名稱 Time / Time$
所屬類別 日期與時間 (Date & Time)
傳回類型 Variant (Date) / String
常用頻率 ★★★★★

在 Excel VBA 的日期與時間處理中,Time 是極為實用的內建函數。它能即時擷取電腦系統目前的「時間(時:分:秒)」,但不包含日期部分。廣泛應用於執行紀錄(Log)記錄、程式執行時間測量、定時任務觸發以及打卡系統開發等情境。

一、 基本語法與參數

Time 函數的標準語法結構如下:

Time()
參數 說明 預設值 / 必填
此函數不需傳入任何參數,呼叫時會直接讀取系統當前時間。

二、 核心功能說明

Time 函數會讀取作業系統的當前時間,並以系統預設的時間格式傳回(例如 下午 02:30:1514:30:15)。

在實際 VBA 自動化開發中,常見的使用情境包括:

  • 在工作表中自動寫入資料更動或記錄產生的「即時時間戳記」。
  • 配合 Format 函數,將時間轉為指定的 24 小時制(如 HH:mm:ss)格式。
  • 結合 TimeValueDateAdd 進行時間差計算與倒數計時。

三、 實用程式碼範例

範例 1:基本取得時間與格式化輸出

直接取得目前時間,並使用 Format 轉換為標準 24 小時制格式:

Sub GetCurrentTimeExample()
    Dim currentTime As Date
    currentTime = Time
    
    Debug.Print "目前系統時間:" & currentTime
    
    ' 格式化為 24 小時制 (HH:mm:ss)
    Dim formattedTime As String
    formattedTime = Format(Time, "HH:mm:ss")
    Debug.Print "格式化時間:" & formattedTime
End Sub

範例 2:自動寫入操作 Log 與時間戳記

在自動化巨集執行完畢時,將目前時間紀錄於工作表的指定儲存格:

Sub WriteExecutionLog()
    ' 假設將執行時間紀錄在 A1 儲存格
    ActiveSheet.Range("A1").Value = "最後更新時間:" & Format(Time, "HH:mm:ss")
    MsgBox "資料更新完成!記錄時間:" & Time, vbInformation
End Sub

範例 3:Time 語法修改系統時間 (Time Statement)

Time 作為陳述式使用在等號左側時,可用於直接修改作業系統的系統時間(需系統管理員權限):

Sub SetSystemTimeExample()
    ' 注意:這會直接修改作業系統時間
    Dim newTime As Date
    newTime = TimeValue("12:00:00")
    
    ' 將系統時間設定為 12:00:00
    Time = newTime
End Sub

四、 常見陷阱與注意事項

⚠️ 注意事項 1:Time 僅包含時間,不含日期
Time 函數只會傳回當前時間(時、分、秒)。如果你的應用情境需要包含「年月日」,請改用 Now 函數;若只需要「年月日」,則使用 Date 函數。
⚠️ 注意事項 2:效能最佳化選用 Time$
Time 預設傳回 Variant (Date) 型態;若確定後續處理皆為文字格式,可改用帶有錢字號的 Time$,這會直接傳回 String 型態的時間字串(格式為 hh:mm:ss),在字串組裝與大量執行時效能更佳。
Dim strTime As String
strTime = Time$ ' 直接返回 String 型別的 "14:30:15"

五、 相關函數推薦

  • Date:取得目前的系統日期(不含時間)。
  • Now:同時取得目前的系統日期與時間。
  • Timer:傳回自午夜(00:00:00)以來所經過的秒數,非常適合用於精確計算程式執行時間。
  • TimeValue:將時間格式的文字轉化為日期/時間(Date)型別。

六、 官方文件連結

想進一步瞭解更詳細的極端情境與進階用法,可參考微軟官方說明:

留言

相關文章 / 薪資情報

文章載入中...

你可能有興趣

精選文章 / 推薦情報

文章載入中...