Biên dịch từ sai chính tả từ tài liệu (Microsoft Word)
Robert có một thư mục chứa nhiều tài liệu trong đó. Anh ấy muốn có một cách để lấy tất cả các từ sai chính tả từ các tài liệu và đặt những từ đó vào một tài liệu mới.
May mắn thay, Word làm cho điều này tương đối dễ dàng thông qua việc sử dụng macro.
Điều này là do lỗi chính tả có thể truy cập được trong VBA bằng cách kiểm tra bộ sưu tập .SpellingError. Mỗi mục trong bộ sưu tập đặc biệt này đại diện cho một lỗi chính tả trong tài liệu.
Với lưu ý này, macro sau đây cho biết cách tập hợp tất cả các lỗi chính tả từ mỗi tài liệu trong một thư mục.
Sub CheckFolderForSpellErrors() 'Copy all misspelled words in each document 'from one directory to a new document. 'Also lists all documents that have no spelling errors Dim cWords As New Collection Dim cDocs As New Collection Dim vItem As Variant Dim rng As Range Dim docSourse As Document Dim docNew As Document Dim vDirectory As String Dim vFile As String Dim bNoSpellingErrors As Boolean Application.ScreenUpdating = False vDirectory = "C:\MyFolder\" ' Path to check ' Find first file to check vFile = Dir(vDirectory & ".doc") Do While vFile <> "" Documents.Open FileName:=vDirectory & vFile Set docSource = ActiveDocument If docSource.SpellingErrors.Count > 0 Then cWords.Add Item:="Spelling errors found in " & vFile & vbCrLf ' add each word to the collection For Each rng In docSource.SpellingErrors cWords.Add Item:=rng.Text & vbCrLf Next Else ' doc has no spelling errors bNoSpellingErrors = True cDocs.Add vFile & vbCrLf End If ActiveDocument.Close (wdDoNotSaveChanges) vFile = Dir Loop Set docNew = Documents.Add For Each vItem In cWords Selection.TypeText vItem Next If bNoSpellingErrors Then Selection.TypeText "These documents have no spelling errors." & vbCrLf For Each vItem In cDocs Selection.TypeText vItem & vbCrLf Next End If Application.ScreenUpdating = True End Sub
Macro sử dụng lệnh Dir để tìm bất kỳ tệp nào trong thư mục được chỉ định (biến vDirectory) kết thúc bằng một số biến thể của “doc”. Lần lượt từng tệp này được tải vào Word. Khi được tải, bộ sưu tập .SpellingErrors được kiểm tra để xem nó có chứa bất kỳ lỗi nào không. Nếu có, thì văn bản của các từ viết sai chính tả sẽ được thêm vào bộ sưu tập c AdWords. Nếu không, thì tên tệp sẽ được thêm vào bộ sưu tập cDocs.
Không có gì đặc biệt về bộ sưu tập c AdWords hoặc cDocs; chúng được tạo ra chỉ đơn giản để giữ bất kỳ lỗi chính tả nào và tên tệp được phát hiện khi kiểm tra tệp. Macro có thể dễ dàng sử dụng các mảng biến thay cho các tập hợp.
Có một số điều cần lưu ý khi chạy macro này.
Đầu tiên, có thể mất khá nhiều thời gian để chạy, tùy thuộc vào số lượng tài liệu trong thư mục và độ dài của mỗi tài liệu đó. Khi tôi chạy macro, tôi đã làm như vậy trên một thư mục chứa 9 tài liệu, trung bình khoảng 97 trang cho mỗi tài liệu. Chỉ mất chưa đầy 8 phút để macro hoàn tất chạy và trong khi nó đang chạy, tôi không thể làm gì khác trong Word. (Trên thực tế, bạn có thể dễ dàng tự hỏi liệu hệ thống của mình có bị “treo” hay không. “)
Một điều khác cần lưu ý là đầu ra có thể khá dài và có vẻ khá dư thừa. Điều này là do các từ sai chính tả có thể xuất hiện nhiều lần trong bộ sưu tập .SpellingErrors. Ví dụ: giả sử bạn có một tài liệu chứa từ “Cftype”, rõ ràng là bị gắn cờ là viết sai chính tả. Nếu từ được sử dụng 30 lần trong tài liệu, từ đó sẽ bị gắn cờ 30 lần và do đó, từ đó sẽ bị xếp vào danh sách lỗi chính tả 30 lần. Mặc dù nó nằm ngoài phạm vi của mẹo này, bạn có thể sửa đổi macro để kiểm tra xem một từ trước đó có bị gắn cờ là sai chính tả hay không và sau đó chỉ thêm nó nếu nó là lỗi chính tả duy nhất.
_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 (13488) áp dụng cho Microsoft Word 2007, 2010, 2013 và 2016.