Trên thanh trạng thái, Word hiển thị nhiều loại thông tin có thể giúp bạn trong khi viết. Ví dụ: thanh trạng thái hiển thị số trang trong tài liệu và số dòng trên trang hiện tại. Một điều sẽ hữu ích là nếu thanh trạng thái hiển thị số lượng từ trong tài liệu, khi bạn đang nhập.

Tuy nhiên, một tính năng như vậy không được tích hợp sẵn trong Word. Thanh trạng thái không thể cấu hình lại thông qua macro, ngoài việc hiển thị hoặc ẩn toàn bộ thanh hoặc viết thông báo vào nó. Việc mã hóa một macro liên tục viết một thông báo lên thanh trạng thái sẽ có nghĩa là thông tin bình thường sẽ không được hiển thị, vì vậy giải pháp sử dụng thanh trạng thái có thể không được chấp nhận.

Có thể viết macro liên tục kiểm tra số lượng từ trong tài liệu, sau đó hiển thị kết quả trong vùng khác của tài liệu, chẳng hạn như thanh tiêu đề hoặc nút trên thanh công cụ. Tùy thuộc vào loại hệ thống bạn có, một giải pháp như vậy có thể không được chấp nhận; bạn sẽ cần phải thực hiện một số thử nghiệm để xem nó có phải không. Mã nội bộ để tính số từ cho tài liệu khá chậm, đặc biệt là khi tài liệu của bạn lớn hơn. Điều này có nghĩa là liên tục kiểm tra số lượng từ có thể làm chậm toàn bộ hệ thống của bạn, có lẽ đến mức không thể chấp nhận được.

Với lưu ý này, hãy xem xét tập hợp các macro sau:

Sub AutoExec()

NumberOfWords End Sub

Sub NumberOfWords()

Dim lngWords As Long     Dim myRange As Range     With Word.Application         If .Windows.Count > 0 Then             Set myRange = ActiveDocument.Content             lngWords = myRange.ReadabilityStatistics(1).Value             .Caption = Format(lngWords, "##,##0") & " words - Microsoft Word"

Else             .Caption = "Microsoft Word"

End If         .OnTime Now + TimeValue(OnTm(lngWords)), "NumberOfWords"

End With End Sub

Private Function OnTm(ByVal lngWd As Long) As String     Select Case lngWd \ 1000         Case 0 To 10             OnTm = "00:00:01"

Case 11 To 20             OnTm = "00:00:05"

Case 21 To 30             OnTm = "00:00:10"

Case 31 To 40             OnTm = "00:00:15"

Case Else             OnTm = "00:00:20"

End Select End Function

Có ba macro được bao gồm trong tập hợp này, mỗi macro thực hiện một nhiệm vụ khác nhau. Macro đầu tiên, có tên là AutoExec, sẽ tự động chạy bất cứ khi nào Word khởi động. Mục đích duy nhất của nó là lần đầu tiên gọi macro tiếp theo, NumberOfWords.

Macro NumberOfWords là mã công việc của tập hợp này. Nó kiểm tra xem có bất kỳ cửa sổ nào đang mở trong Word hay không. Nếu vậy, nó gọi mã hóa nội bộ của Word để xác định số lượng từ trong tài liệu. Sau đó, nó định dạng đầu ra và hiển thị trên thanh tiêu đề của cửa sổ.

Nếu không có cửa sổ nào đang mở, thì macro chỉ hiển thị “Microsoft Word” trên thanh tiêu đề.

Điều cuối cùng mà NumberOfWords làm là tự báo cho mình biết khi nào nên chạy lại. Nó thực hiện điều này bằng cách sử dụng tính năng OnTime của VBA, đặt thời gian khởi động lại là một lúc nào đó trong vòng 20 giây tới. Đây là lúc macro thứ ba, OnTm, phát huy tác dụng. Nó sẽ xem xét số lượng từ trong tài liệu hiện tại và xác định khoảng thời gian giữa các lần chạy macro NumberOfWords. Nếu có 10.000 từ trở xuống trong tài liệu của bạn, thì macro được chạy mỗi giây. Nếu có 11.000 đến 20.000 từ, thì nó sẽ được chạy sau mỗi năm giây, v.v.

Lý do cho việc kiểm tra này đã được đề cập trước đó trong mẹo này: việc tính toán số từ và định dạng thông tin thanh tiêu đề có thể mất một lúc (theo thuật ngữ VBA) và nếu tài liệu của bạn lớn, điều này có thể gây ra sự chậm trễ không mong muốn và đáng chú ý cập nhật tài liệu của bạn. Nếu muốn, bạn có thể sử dụng mã hóa trong chức năng OnTm để xác định phân tích độ trễ tốt nhất cho các loại tài liệu bạn sử dụng.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (1608) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003.