Trong bài viết này, chúng tôi xin giới thiệu với bạn 3 loại lời nhắc khác nhau trong Word mà bạn có thể tạo thông qua VBA.
Vì một số người trong chúng ta phải xử lý rất nhiều tệp trong Word hàng ngày nên chúng ta có thể cảm thấy chóng mặt với những việc cần làm và đôi khi bỏ dở một số công việc. Trong trường hợp đó, một lời nhắc nhở sẽ hữu ích. Do đó, chúng tôi giới thiệu cho bạn 3 loại lời nhắc hữu ích mà bạn có thể sử dụng để theo dõi những việc cần làm.
Loại đầu tiên: Lời nhắc nhở hàng ngày
Ví dụ, nếu bạn thích lập kế hoạch cho ngày mai vào cuối ngày hôm nay, thì bạn sẽ cần một lời nhắc nhở hàng ngày. Trong trình soạn thảo VBA của Word, bạn có thể thêm một macro có tên “AutoExec”. Sau đó, mỗi khi bạn mở ứng dụng Word, macro sẽ tự động chạy và hiển thị một hộp thoại, chỉ ra tất cả các nhiệm vụ cần hoàn thành trong ngày hôm đó.
- Đầu tiên, mở Word và nhấn “Alt + F11” để mở trình soạn thảo VBA.
- Sau đó nhấp vào “Bình thường”.
- Tiếp theo nhấp vào “Chèn”.
- Và chọn “Mô-đun” trên menu để chèn một cái mới vào dự án “Bình thường”.

- Bây giờ hãy nhấp đúp chuột vào mô-đun để vào khu vực chỉnh sửa và dán các mã sau vào đó:
Sub AutoExec()
Dim dtDate As Date
dtDate = #2/20/2017#
If Date = dtDate Then
MsgBox "Tasks to be done today:" & vbCr & "1: Send fileXX to John Smith " & vbCr & "2: Finish file YY"
End If
End Sub
- Tiếp theo nhấp vào “Save Normal” để lưu thay đổi.
Kết quả mỗi khi bạn mở Word sẽ xuất hiện một hộp thông báo liệt kê tất cả các công việc bạn cần hoàn thành. Bằng cách nhấp vào “OK”, bạn có thể mở và tiếp tục chỉnh sửa trên một tài liệu cụ thể.
Ghi chú:
- Trong dòng mã “dtDate = #2/20/2017#”, ngày là ngày bạn phải thực hiện tất cả các hành động. Hãy nhớ thay đổi cho phù hợp.
- Trong dòng mã “MsgBox “Việc cần làm hôm nay:” & vbCr & “1: Gửi fileXX cho John Smith ” & vbCr & “2: Hoàn tất file YY””, toàn bộ nội dung trong dấu ngoặc kép chính là danh sách nhiệm vụ bạn cần làm theo. Thay thế nó bằng những nhiệm vụ cụ thể của riêng bạn. Bạn nên đặt từng mục trong danh sách trong dấu ngoặc kép và nối nó với mục trước đó bằng “& vbCr &” (không có dấu ngoặc kép).
Loại thứ hai: Lời nhắc cho các nhiệm vụ định kỳ
Lời nhắc hàng tuần
Ở đây có lời nhắc hàng tuần, thông báo những việc bạn phải làm vào cùng một ngày mỗi tuần.
- Đầu tiên, lặp lại 4 bước đầu tiên ở trên.
- Chỉ lần này, bạn dán macro dưới đây:
Sub AutoExec()
Dim dtWeekDay As Date
dtWeekDay = vbMonday
If dtWeekDay = Weekday(Date) Then
MsgBox "Back up today of each week."
End If
End Sub
- Tương tự, nhấp vào nút “Save Normal” cuối cùng.
Tương tự như vậy, sẽ có một hộp tin nhắn. Nhấp vào “OK” để tiếp tục viết bằng Word.
Ghi chú:
Trong dòng mã “dtWeekDay = vbMonday", bạn có thể thay đổi "vbThứ Hai"To"vbThứ ba","vbThứ Tư","vbThứ năm","vbThứ sáu","vbthứ bảy", hoặc là "vbchủ nhật” tương ứng.
Lời nhắc hàng tháng
Tương tự như vậy, có tính năng nhắc nhở hàng tháng, nhắc nhở bạn về nhiệm vụ hàng tháng.
- Vẫn thực hiện 4 bước đầu tiên trong “The First Kind: The Daily Reminder”.
- Sau đó dán mã vào đó:
Sub AutoExec()
Dim dtDay As Date
dtDay = 20
If dtDay = Day(Date) Then
MsgBox "Back up today of each month."
End If
End Sub
- Cuối cùng nhưng không kém phần quan trọng, hãy nhấp vào “Lưu bình thường”.
Tương tự, một hộp thông báo sẽ hiện lên mỗi khi bạn mở Word.
Lưu ý:
Trong dòng mã “dtNgày = 20”, con số chính là ngày bạn cần hoàn thành nhiệm vụ hàng tháng. Hãy nhớ thay đổi nó trước khi chạy macro.
Loại thứ ba: Nhắc nhở về chênh lệch ngày hoặc giờ
Vì hầu hết mọi việc đều có hạn chót, nên việc ghi nhớ chính xác số ngày hoặc thời gian còn lại là rất cần thiết. Do đó, hai macro sau đây có thể tự động tính toán sự khác biệt giữa ngày hoặc giờ hiện tại và ngày hoặc giờ hạn chót. Và kết quả sẽ hiển thị khi bạn mở Word, trong một hộp thoại thông báo.
Các bước chạy và lưu macro cũng tương tự như trên.
Đây là macro để có được sự khác biệt trong ngày:
Sub Autoexec()
Dim dtDeadlineDay As Date
Dim nDaysLeft As Long
'Specify the deadline date and calculate the days left.
dtDeadlineDay = #2/20/2017#
nDaysLeft = DateDiff("d", Now, dtDeadlineDay)
' Show the days left before deadline.
If nDaysLeft > 1 Then
MsgBox "There are " & nDaysLeft & " days left before " & dtDeadlineDay & "."
ElseIf nDaysLeft = 1 Then
MsgBox "There is 1 day left before " & dtDeadlineDay & "."
ElseIf nDaysLeft = 0 Then
MsgBox "Today is the deadline!"
End If
End Sub
Và kết quả là:
Lưu ý:
Nhớ sửa lại dòng code “dtDeadlineDay = #2/20/2017#”. Chỉ cần thay đổi ngày khi bạn cần.
Sau đó tiếp theo là macro để lấy chênh lệch múi giờ:
Sub Autoexec()
Dim dtCurrentTime As Date
Dim dtDeadlineTime As Date
Dim nTimeLeft As Long, nHour As Long, nMinute As Long, nSecond As Long
' Specify the current time and the deadline time.
dtCurrentTime = TimeValue(Now)
dtDeadlineTime = TimeValue("16:40:00 PM")
' Calculate and show the time difference.
nTimeLeft = DateDiff("s", dtCurrentTime, dtDeadlineTime)
nHour = nTimeLeft \ 3600
nTimeLeft = nTimeLeft - nHour * 3600
nMinute = nTimeLeft \ 60
nSecond = nTimeLeft - nMinute * 60
MsgBox "There are " & nHour & " hours " & nMinute & " minutes " & nSecond & " seconds left before " & dtDeadlineTime & "."
End Sub
Và kết quả là:
Lưu ý:
Thay thế thời gian trong “dtDeadlineTime = TimeValue(“16:40:00 PM”)” với một ý nghĩa.
Một bản sao lưu đáng giá
Chúng tôi sẽ không bao giờ đánh giá thấp tầm quan trọng và những gì nó có thể làm sau khi tệp bị hỏng. Ngoài ra, chúng tôi khuyên bạn nên lập kế hoạch dự phòng ít nhất hàng ngày, hàng tuần hoặc hàng tháng. Sao lưu là sự chuẩn bị chính xác mà chúng ta nên thực hiện để ngăn dữ liệu của mình bị hỏng. Nếu không, nỗ lực cuối cùng mà chúng ta có thể dành ra là đạt được một công cụ khôi phục dữ liệu Word bị hỏng.
Giới thiệu tác giả:
Vera Chen là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm công cụ sửa lỗi xls excel bị hỏng và pdf sửa chữa các sản phẩm phần mềm. Để biết thêm thông tin, hãy truy cập www.datanumennăm







