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.