Phương pháp 1 – Xây dựng Đồng hồ số qua VBA Excel và hàm TEXT
Các bước:
- Vào Insert > Illustrations > Shapes (Chèn > Minh họa > Hình dạng).

- Hộp tùy chọn Shapes hiện ra.
- Chọn tùy chọn Rounded Rectangular (Hình chữ nhật bo góc).

- Một hình chữ nhật bo góc được chèn vào sổ làm việc.

- Vào thẻ Developer (Nhà phát triển) và nhấp Visual Basic.

- Trong cửa sổ Visual Basic, vào thẻ Insert và nhấp tùy chọn Module để tạo hộp mô-đun.

- Trong hộp mô-đun, nhập mã VBA sau:
Sub Digi_Clock()
Range("B5") = Not Range("B5")
Do While Range("B5") = True
DoEvents
Range("B6") = Now()
Loop
End Sub
- Nhấn nút Run (Chạy) màu xanh lá.

- Trong ô B4 (gốc bài viết ghi B4 nhưng code dùng B5, sửa nhất quán: ô B5), nhập TRUE và nhấn Enter hoặc Tab.

- Nhấp chuột_right vào hình chữ nhật bo góc.
- Trong menu ngữ cảnh, chọn Assign Macro (Gán Macro) để gán mã cho hình dạng.

- Chúng ta đã gán VBA vào hình chữ nhật.
- Hình này sau sẽ hiển thị thời gian.

- Trong ô C6, nhập công thức TEXT sau:
=TEXT(B6,"hh:mm:ss AM/PM")
- Công thức này chuyển đổi thời gian trong ô B6 (cập nhật bởi VBA) và trả về định dạng giờ hh:mm:ss.
- Nhấn Enter.
- Vào thẻ Home (Trang chủ) nhóm Font (Phông chữ).
- Tùy chỉnh màu chữ, cỡ chữ và kiểu chữ.

- Thời gian sẽ hiển thị ở định dạng số (digital).

Đọc thêm: Cách tạo Đồng hồ chạy trong Excel
Phương pháp 2 – Dùng công cụ Shapes & VBA để thiết kế Đồng hồ số 7 đoạn (7-Segment Style)
Bước 1: Thiết kế mặt đồng hồ
- Vào Insert > Illustrations > Shapes.

- Trong hộp Shapes, tìm nhóm Block Arrows (Mũi tên khối) và chọn Pentagon Arrow (Mũi tên ngũ giác).
- Một mũi tên ngũ giác được chèn vào sổ làm việc.

- Chèn thêm một mũi tên bằng Copy-Paste.
- Chọn mũi tên mới, vào Shape Format > Rotate (Định dạng hình dạng > Xoay).
- Chọn Flip Horizontal (Lật ngang).

- Sao chép từng mũi tên và ghép lại tạo thành hình tròn (8 đoạn).
- Dùng tùy chọn Rotate khi cần.

- Sắp xếp tất cả mũi tên thành hình số 8 (8 đoạn).
- Tùy chỉnh chữ số đầu tiên: nhấp chuột_right từng nhóm mũi tên và đặt tên lần lượt từ 1.

- Copy-dán toàn bộ nhóm để tạo định dạng hh:mm:ss (6 chữ số + 2 chấm = 8 nhóm, nhưng bài gốc đặt tên 1 đến 42 cho 6 chữ số * 7 đoạn).
- Đặt tên từ 1 đến 42.
- Thêm 4 hình Oval (Hình tròn/elip) đặt tên Point (chấm hai chấm).
- Thêm 3 Rounded Rectangle để tạo 3 nút lệnh: Start, Stop, Reset.

- Chúng ta đã xây dựng định dạng hiển thị cho đồng hồ.
- Bây giờ sẽ gán mã VBA vào định dạng này.
Bước 2: Chèn mã VBA Excel
- Nhấn ALT + F11 để mở cửa sổ Visual Basic.
- Thêm mã VBA sau (Hàm con hiển thị số trên 7 đoạn):
Sub Digital_Clock_Autoshapes(FS As Integer, Digi As Integer)
Dim n As Integer, Spe As Shape, Shw As Worksheet
Set Shw = ActiveSheet
Dim i As Integer
' Bật tất cả 7 đoạn
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
Spe.Visible = msoCTrue
Next i
' Tắt đoạn không cần thiết theo số (0-9)
If Digi = 0 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 2 Then Spe.Visible = msoFalse ' Đoạn giữa
Next i
End If
If Digi = 1 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i <> FS + 1 And i <> FS + 5 Then Spe.Visible = msoFalse ' Chỉ 2 đoạn bên phải
Next i
End If
If Digi = 2 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 5 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 3 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 4 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 4 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS Or i = FS + 4 Or i = FS + 6 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 5 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 1 Or i = FS + 4 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 6 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 1 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 7 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 2 Or i = FS + 4 Or i = FS + 6 Then Spe.Visible = msoFalse
Next i
End If
If Digi = 9 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 4 Then Spe.Visible = msoFalse
Next i
End If
' Lưu ý: Số 8 không cần tắt đoạn nào (mặc định bật tất cả)
End Sub
- Đóng cửa sổ VBA và quay lại sổ làm việc.

- Thêm 3 mã VBA khác cho các nút lệnh:
- Cho lệnh Start, nhập:
Sub Start_Clock()
Dim Shw As Worksheet
Set Shw = ActiveSheet
Shw.Range("B5").Value = ""
x:
If Shw.Range("B5").Value = "Stop" Then Exit Sub
VBA.DoEvents
' Gọi hàm hiển thị cho 6 chữ số: Giờ1, Giờ2, Phút1, Phút2, Giây1, Giây2
Call Digital_Clock_Autoshapes(1, VBA.CInt(VBA.Left(VBA.Format(Time, "HH"), 1)))
Call Digital_Clock_Autoshapes(8, VBA.CInt(VBA.Right(VBA.Format(Time, "HH"), 1)))
Call Digital_Clock_Autoshapes(15, VBA.CInt(VBA.Mid(VBA.Format(Time, "HHMM"), 3, 1)))
Call Digital_Clock_Autoshapes(22, VBA.CInt(VBA.Right(VBA.Format(Time, "HHMM"), 1)))
Call Digital_Clock_Autoshapes(29, VBA.CInt(VBA.Left(VBA.Format(Time, "SS"), 1)))
Call Digital_Clock_Autoshapes(36, VBA.CInt(VBA.Right(VBA.Format(Time, "SS"), 1)))
' Nhấp nháy chấm hai chấm (Point)
Dim Spe As Shape
Set Spe = Shw.Shapes("Point")
If Application.WorksheetFunction.IsEven(VBA.Second(VBA.Now)) Then
Spe.Visible = msoCTrue
Else
Spe.Visible = msoFalse
End If
GoTo x
End Sub
- Thêm mã cho lệnh Stop:
Sub Stop_Clock()
Dim Shw As Worksheet
Set Shw = ActiveSheet
Shw.Range("B5").Value = "Stop"
End Sub
- Thêm mã VBA cho lệnh Reset:
Sub Reset_Clock()
Dim n As Integer, Spe As Shape, Shw As Worksheet
Set Shw = ActiveSheet
Dim i As Integer
For i = 1 To 42
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
Spe.Visible = msoCTrue
Next i
Set Spe = Shw.Shapes("Point")
Spe.Visible = msoCTrue
End Sub
- Nhấp chuột_right vào lệnh Start và chọn Assign Macro.

- Gán macro Start_Clock cho nút Start.
- Gán Reset_Clock và Stop_Clock cho nút Reset và Stop tương ứng.
- Nhấn OK.

- Đồng hồ số với các nút lệnh sẽ xuất hiện.

Đọc thêm: Cách tạo Đồng hồ kim (Analog Clock) trong Excel
Tải tệp thực hành
Các bài viết liên quan
- Cách tạo Biểu đồ đồng hồ trong Excel
- Cách dùng mã VBA tạo Đồng hồ số trong Excel
Nhận miễn phí Bài tập Excel nâng cao có lời giải!