Robertには、多くのドキュメントが含まれているフォルダがあります。彼は、スペルミスのある単語をすべてドキュメントから取り出して、それらの単語を新しいドキュメントに配置する方法を望んでいます。

幸い、Wordではマクロを使用することでこれを比較的簡単に行うことができます。

これは、VBAで.SpellingErrorコレクションを調べることでスペルミスにアクセスできるためです。この特別なコレクションの各項目は、ドキュメントのスペルミスを表しています。

これを念頭に置いて、次のマクロは、フォルダ内の各ドキュメントからすべてのスペルミスをまとめる方法を示しています。

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

マクロは、Dirコマンドを使用して、指定されたフォルダー(vDirectory変数)内で「doc」のバリアントで終わるファイルを検索します。これらの各ファイルは、順番にWordに読み込まれます。ロード中、.SpellingErrorsコレクションは、エラーが含まれているかどうかを確認するためにチェックされます。含まれている場合は、スペルが間違っている単語のテキストがcWordsコレクションに追加されます。そうでない場合は、ファイル名がcDocsコレクションに追加されます。

cWordsコレクションとcDocsコレクションのどちらについても特別なことは何もありません。これらは、ファイルを調べたときに発見されたスペルミスやファイル名を保持するためだけに作成されました。マクロは、コレクションの代わりに変数配列を簡単に使用できます。

このマクロを実行する際に留意すべき点がいくつかあります。

まず、フォルダ内のドキュメントの数と各ドキュメントの長さによっては、実行にかなりの時間がかかる場合があります。マクロを実行したとき、1つのドキュメントあたり平均約97ページの9つのドキュメントを含むフォルダーで実行しました。マクロの実行が完了するまでに8分弱かかりました。実行中は、Wordで他に何もできませんでした。 (実際、システムが「ハング」しているかどうか疑問に思うかもしれません。)

覚えておくべきもう1つのことは、出力が非常に長くなり、かなり冗長に見える可能性があることです。これは、スペルミスのある単語が.SpellingErrorsコレクションに複数回出現する可能性があるためです。たとえば、「Cftype」という単語を含むドキュメントがあるとします。この単語には、明らかにスペルミスのフラグが付けられています。単語がドキュメントで30回使用されている場合、その単語には30回のフラグが付けられるため、スペルミスリストに30回表示されます。このヒントの範囲を超えていますが、マクロを変更して、単語に以前にスペルミスのフラグが付けられているかどうかを確認し、それが一意のスペルミスである場合にのみ追加することができます。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13488)は、Microsoft Word 2007、2010、2013、および2016に適用されます。