ヘッダーとフッターのワードカウント(Microsoft Word)
ケイトは、ドキュメント内のヘッダーとフッターのみの単語数を生成する必要があり、その方法について途方に暮れています。
それを自動的に行う方法はありませんが、カウントを計算するマクロを開発することはできます。 VBAを使用すると、ドキュメントの各セクションのヘッダーを簡単にステップスルーでき、各ヘッダーに含まれる単語の数を確認できます。 1つのアプローチは、次のようなマクロを使用することです。
Sub CntHeaderWords() Dim s As Section Dim h As HeaderFooter Dim sRaw As String Dim Cnt As Long Dim J As Integer Cnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then Cnt = Cnt + 1 Next J Next h Next s MsgBox Cnt & " words in headers" End Sub
このマクロを実行すると、ドキュメントの各セクション、次にそのセクションの各ヘッダーが順番に表示されます。単語数はヘッダーごとに決定され、Cnt変数に追加されます。マクロが完了すると、ドキュメントのヘッダーの単語数が表示されます。
このマクロについて注意すべき興味深い点がいくつかあります。
まず、各ヘッダーのWordsコレクションのCountプロパティを決定できるため、これらすべてのカウントを単純に合計して、全体的な単語数を決定できると考えるかもしれません。問題は、セクションのヘッダーがない場合でも、Wordが「暗黙の」ヘッダーに対して単語数1を返すことです。そのため、マクロは実際にヘッダー内の各単語を調べ、それがキャリッジリターンまたはラインフィードにすぎない場合は、カウントに含まれません。
注意すべきもう1つの項目は、ヘッダーに句読点がある場合、各句読点は単語としてカウントされることです。たとえば、「All rights reserved」というヘッダーがある場合、Wordはそれを3語と見なします。ヘッダーが「Allrightsreserved」の場合。 (末尾にピリオドが付いている)場合、Wordはそれを4つの単語と見なします。結論として、ヘッダーに句読点があると思われる場合は、句読点をカウントしないようにマクロコードを調整することをお勧めします。
このマクロは、ドキュメント内のヘッダーのワードカウントのみを返します。代わりに、ヘッダーとフッターの両方の単語数が必要な場合は、次のようにマクロを調整できます。
Sub CntHFWords() Dim s As Section Dim h As HeaderFooter Dim f As HeaderFooter Dim sRaw As String Dim HdCnt As Long Dim FtCnt As Long Dim J As Integer HdCnt = 0 FtCnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then HdCnt = HdCnt + 1 Next J Next h For Each f In s.Footers For J = 1 To f.Range.Words.Count sRaw = f.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then FtCnt = FtCnt + 1 Next J Next f Next s sRaw = "Header words: " & HdCnt & vbCrLf sRaw = sRaw & "Footer words: " & FtCnt & vbCrLf sRaw = sRaw & "Total words: " & HdCnt + FtCnt MsgBox sRaw End Sub
このバージョンのマクロは、各ヘッダーに適用するのとまったく同じカウント手法を各フッターに適用し、マクロの最後に個々のカウントと合計カウントを表示します。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(10285)は、Microsoft Word 2007、2010、および2013に適用されます。