Isao tự hỏi liệu có cách nào để dễ dàng tạo danh sách tất cả các từ duy nhất trong một tài liệu. Anh ta không cần biết mỗi từ xuất hiện bao nhiêu lần; anh ta chỉ cần danh sách các từ duy nhất. Ngoài ra, các biến thể viết hoa và viết thường trên cùng một từ sẽ được tính là cùng một từ.

Không có chức năng hoặc công cụ Word tích hợp nào để thực hiện việc này. Tuy nhiên, trong VBA, bạn có thể truy cập bộ sưu tập Từ, bao gồm tất cả các từ trong tài liệu. Với ý nghĩ này, bạn có thể tạo macro xây dựng danh sách các từ duy nhất đã được sắp xếp trong tài liệu và sau đó thêm các từ đó vào cuối tài liệu.

Sub UniqueWordList()

Dim wList As New Collection     Dim wrd     Dim chkwrd     Dim sTemp As String     Dim k As Long

For Each wrd In ActiveDocument.Range.Words         sTemp = Trim(LCase(wrd))

If sTemp >= "a" And sTemp <= "z" Then             k = 0             For Each chkwrd In wList                 k = k + 1                 If chkwrd = sTemp Then GoTo nw                 If chkwrd > sTemp Then                     wList.Add Item:=sTemp, Before:=k                     GoTo nw                 End If             Next chkwrd             wList.Add Item:=sTemp         End If nw:

Next wrd

sTemp = "There are " & ActiveDocument.Range.Words.Count & " words "

sTemp = sTemp & "in the document, before this summary, but there "

sTemp = sTemp & "are only " & wList.Count & " unique words."



ActiveDocument.Range.Select     Selection.Collapse Direction:=wdCollapseEnd     Selection.TypeText vbCrLf & sTemp & vbCrLf     For Each chkwrd In wList         Selection.TypeText chkwrd & vbCrLf     Next chkwrd End Sub

Lưu ý rằng mỗi từ trong tài liệu được trích xuất, chuyển đổi thành chữ thường và sau đó được thêm vào bộ sưu tập wList, theo thứ tự được sắp xếp.

Các từ chỉ được thêm vào nếu chúng được xếp theo thứ tự bảng chữ cái (do đó, số bị loại trừ, cũng như dấu câu) và macro không chú ý đến trường hợp của các từ. Bạn cũng cần lưu ý rằng macro chỉ xem xét các từ trong phần chính của tài liệu. Nó không bao gồm bất kỳ từ nào ở các vị trí như đầu trang, chân trang, hộp văn bản hoặc hình dạng.

Có thể dễ dàng thay đổi macro để đáp ứng các nhu cầu khác nhau. Ví dụ: bạn có thể có macro gắn danh sách từ vào một tài liệu riêng biệt thay vì ở cuối tài liệu hiện tại. Tất cả những gì bạn cần làm là chèn dòng này trước dòng thoát thứ hai ở đây:

sTemp = "There are " & ActiveDocument.Range.Words.Count & " words "

sTemp = sTemp & "in " & ActiveDocument.Name & ", but there "

sTemp = sTemp & "are only " & wList.Count & " unique words."



Documents.Add     ActiveDocument.Range.Select     Selection.Collapse Direction:=wdCollapseEnd     Selection.TypeText vbCrLf & sTemp & vbCrLf     For Each chkwrd In wList         Selection.TypeText chkwrd & vbCrLf     Next chkwrd End Sub

Lưu ý rằng chỉ có một thay đổi cơ bản trong macro: Việc bổ sung phương thức “Documents.Add” để tạo tài liệu mới cho bản tóm tắt.

Đối với một số ý tưởng khác về cách lấy từ ra khỏi tài liệu — bao gồm macro kiểm đếm tần suất từ ​​— bạn có thể tham khảo mẹo này:

_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 (7697) áp dụng cho Microsoft Word 2007, 2010, 2013 và 2016.