バリーは、インデックスの作成に使用される何百ものXEフィールドを含むかなり大きなWord文書(約50ページ)を持っています。彼は、ドキュメント内に存在するXEフィールドの数を、手動でカウントすることなくカウントする方法があるかどうか疑問に思います。

このニーズに取り組むには、いくつかの方法があります。 1つは、Wordの検索および置換機能に依存することです。簡単な手順は次のとおりです。

。 [Wordのオプション]ダイアログボックスを表示します。 (Word 2007では、[Office]ボタンをクリックし、[Wordのオプション]をクリックします。Word2010以降のバージョンでは、リボンの[ファイル]タブを表示して、[オプション]をクリックします。)

。ダイアログボックスの左側にある[表示]をクリックします。 (図1を参照)

。隠しテキストがドキュメントに表示されていることを確認してください。 ([非表示]またはすべてのチェックボックスが選択されていることを確認してください。)

。 [OK]をクリックします。

。 Ctrl + Hを押します。 Wordは、[検索と置換]ダイアログボックスの[置換]タブを表示します。 (図2を参照)

。 [検索する文字列]ボックスに「^ 19XE」と入力します(引用符は含みません)。

。 [置換]ボックスに「^&」と入力します(ここでも引用符は含みません)。

。 [すべて置換]をクリックします。

Wordは、すべてのXEフィールドを検索し、行われた置換の数を表示します。これはあなたの希望する数です。コード^ 19(ステップ6)は、フィールドのみが一致する必要があることを示す、開始フィールド中括弧の文字コードです。必要に応じて、隠しテキストの表示をオフにすることができます。

この一連の手順について注意すべき点がいくつかあります。

まず、一部の人々は、上記に欠けているステップがあると思うかもしれません:

Alt + F9を押して、ドキュメント内のすべてのフィールドコードを表示します。

実際には、非表示のテキストが表示されている限り、XEフィールドは常に表示されるため、この手順は必要ありません。つまり、Alt + F9を押しても、表示に影響はありません。ただし、XEフィールド以外のフィールドをカウントする場合は、手順を実行する前にフィールドコードを表示する必要があります。

注意すべきもう1つの点は、開始フィールド中括弧に続くことができるスペースの数に関しては、Wordはかなり寛大であるということです。上記の手順では、単一のスペースで開始フィールド中括弧(^ 19)とXEコードが区切られているXEフィールドのみが検出されます。フィールドにさらにスペースが含まれている(またはスペースが含まれていない)場合、フィールドのそれらのインスタンスはカウントされません。このため、XE(^ 19コードとスペースなし)を検索して、[大文字と小文字を区別する]チェックボックスをオンにすることをお勧めします。これは、ドキュメント内に大文字のXE文字の他のインスタンスがない限り機能します。

XEフィールドをカウントするために使用できるいくつかの単純なマクロもあります。ドキュメント内の唯一のフィールドがXEフィールドである場合、マクロは非常に単純です。実際、

Sub CountFields()

Dim iCnt As Integer

iCnt = ActiveDocument.Fields.Count     MsgBox "There are " & iCnt & " fields in the document."

End Sub

ただし、ドキュメントに他のフィールドがある場合、このアプローチは機能しません。覚えておいてください。フィールドは、実際にインデックスをドキュメントに配置するために使用されます。したがって、インデックスエントリにXEフィールドを使用している場合は、実際のインデックス自体を挿入するためにフィールドを使用している可能性があります。そしてもちろん、他の目的のためにドキュメントに他の多くのフィールドが存在する可能性があります。この可能性が高い場合、マクロは各フィールドを調べて、それがXEフィールドであるかどうかを判断する必要があります。

Sub CountXEFields()

Dim iCnt As Integer     Dim f As Field

For Each f In ActiveDocument.Fields         If f.Type = wdFieldIndexEntry Then iCnt = iCnt + 1     Next     MsgBox "There are " & iCnt & " XE fields in the document."

End Sub

このマクロは、各FieldオブジェクトのTypeプロパティをチェックして、それがXEフィールドであることを確認します。その場合、カウントに追加され、マクロの最後にカウントが表示されます。

注:

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

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

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

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(11754)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス:

link:/ word-Counting_Fields_in_a_Document [ドキュメント内のフィールドのカウント]