Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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).

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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).

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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á.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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ữ.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

Đọ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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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).

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giả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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

  • 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.

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giản

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

Tạo Đồng hồ số (Digital Clock) trong Excel: 2 phương pháp VBA & Công thức đơn giả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!