Tạo danh sách các từ duy nhất (Microsoft Word)
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.