Nếu bạn có tài liệu bao gồm văn bản trong các hộp văn bản khác nhau, bạn nên hiểu rằng nếu bạn thực hiện đếm từ, Word sẽ không bao gồm các từ trong hộp văn bản trong số từ mà nó trả về. Nếu bạn chỉ muốn biết số lượng từ trong hộp văn bản, có một cách để giải quyết vấn đề này:

Chỉ cần chọn hộp văn bản có các từ bạn muốn đếm trước khi bắt đầu chức năng Đếm Từ. Word sau đó chỉ đếm các từ trong hộp văn bản một cách cẩn thận, bỏ qua phần còn lại của tài liệu.

Tuy nhiên, có một lúc kỹ thuật chọn-trước-đếm này sẽ không hoạt động. Nếu bạn có nhiều hộp văn bản chứa các từ và các hộp văn bản đó được nhóm lại, thì chức năng Đếm Từ sẽ không nhận dạng chúng là “đếm được” nếu bạn chọn nhóm. Nói cách khác, để đếm các ký tự trong các hộp văn bản tạo thành nhóm, trước tiên bạn phải hủy nhóm và sau đó đếm từng hộp văn bản.

Rõ ràng, điều này có thể trở nên tẻ nhạt khi làm đi làm lại. Một cách giải quyết vấn đề này là sử dụng macro thực hiện các bước tương tự cho bạn.

Macro sau, TextBoxCount, từng bước qua tất cả các hình dạng trong tài liệu của bạn. Nếu chúng được nhóm lại, thì chúng sẽ tự động được hủy nhóm. Sau đó, nó thực hiện đếm từ trên mỗi hộp văn bản và trả về hộp thoại cho biết số từ và ký tự trong các hộp văn bản (gọi chung) và số từ và ký tự trong toàn bộ tài liệu, bao gồm cả các hộp văn bản.

Sub TextBoxCount()

Dim lngTBWords As Long     Dim lngTBChars As Long     Dim lngDocWords As Long     Dim lngDocChars As Long     Dim shpTemp As Shape     Dim wcTemp As Dialog     Dim bDone As Boolean

Application.ScreenUpdating = False

Do         bDone = True         For Each shpTemp In ActiveDocument.Shapes             If shpTemp.Type = msoGroup Then                 shpTemp.Ungroup                 bDone = False             End If         Next shpTemp     Loop Until bDone

'Get count in main document     Selection.HomeKey Unit:=wdStory     Set wcTemp = Dialogs(wdDialogToolsWordCount)

wcTemp.Update     wcTemp.Execute     lngDocWords = wcTemp.Words     lngDocChars = wcTemp.Characters

'Step through shapes and add counts     lngTBWords = 0     lngTBChars = 0     For Each shpTemp In ActiveDocument.Shapes         shpTemp.Select         wcTemp.Execute         lngTBWords = lngTBWords + wcTemp.Words         lngTBChars = lngTBChars + wcTemp.Characters     Next shpTemp     lngDocWords = lngDocWords + lngTBWords     lngDocChars = lngDocChars + lngTBChars

Application.ScreenUpdating = True     MsgBox Str(ActiveDocument.Shapes.Count) _       & " text boxes found with" & vbCr _       & Str(lngTBWords) & " word(s) and" & vbCr _       & Str(lngTBChars) & " characters" & vbCr & vbCr _       & " In the total document there are" & vbCr _       & Str(lngDocWords) & " word(s) and" & vbCr _       & Str(lngDocChars) & " characters"

End Sub

Hãy nhớ rằng macro này bỏ nhóm bất kỳ nhóm nào đã thực hiện trước đó trong tài liệu. Vì lý do này, bạn có thể muốn chạy macro sau khi lưu tài liệu của mình và sau đó hủy tài liệu (tải lại từ đĩa) sau khi đã đếm xong.

_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 (1839) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003.