ミケーレは、ドキュメント内の箇条書きの数または番号付きのリストの数を数える方法を必要としています。彼女はこれをWordでどのように達成できるのか疑問に思います。

これは想像よりも少し難しいですが、結論としては、カウントを確実に生成する方法が見つからないということです。この理由は少し説明が必要かもしれません。

ドキュメントにスタイルを追加する方法は複数あります。たとえば、リボンの[ホーム]タブにある[番号付きリスト]ツールまたは[箇条書き]ツールをクリックして、現在の段落をリストに変換できます。また、入力を開始して、番号付きリストと箇条書きリストのどちらを作成しているかをWordが(入力時にオートフォーマットを介して)検出できるようにすることもできます。リストとして使用するものを指定するスタイルを定義して適用することもできます。

リストの作成方法に関係なく、Wordはスタイルをリスト内の段落に関連付けます。独自のスタイルを作成して適用する場合は、その特定のスタイルが(もちろん)使用されます。ツールバーボタンを使用するか、オートフォーマットを使用してリストを作成する場合、Wordは自動的にリスト段落スタイルを適用します。 (はい、番号付きリストか箇条書きリストかに関係なく、まったく同じスタイルを使用します。)

スタイルはリストに関連付けられているため、使用中のスタイルのインスタンスの数をすばやく判断できます。 [スタイル]作業ウィンドウを表示するだけです(リボンの[ホーム]タブを表示し、[スタイル]グループの右下にある小さなアイコンをクリックします)。リストに使用されているスタイルを見つけ、そのスタイル名の上にマウスポインターを置いてから、名前の右側に表示される下矢印をクリックします。次のいずれかのようなものが表示されます:

  • すべて選択:(データなし)

  • すべてのXインスタンスを選択

表示されているものが最初の形式と一致する場合は、そのオプションを選択します。スタイル名にカーソルを合わせて下矢印をもう一度クリックすると、表示される内容が2番目の形式と一致するはずです。

これは、ドキュメント内のリストの数を示していると思われるかもしれません。そうではありません。この特定のスタイルでフォーマットされた段落の数のみが表示されます。したがって、6つの項目で構成される単一のリストがある場合、返されるスタイル数は6になります。

したがって、このアプローチ(スタイルのカウント)は、リストのカウントを決定するための信頼できる方法を提供しません。

検討するもう1つの方法は、マクロを使用して、ドキュメントに含まれるリストの数を判別することです。 Wordはリストコレクションを維持し、VBAで利用できるようにします。ドキュメント内の各リストをステップスルーして、そのListTypeプロパティを調べることができます。このプロパティは、次の列挙で示されているように、実際には7つの異なる値のいずれかになります。

wdListBullet wdListListNumOnly wdListMixedNumbering wdListNoNumbering wdListOutlineNumbering wdListPictureBullet * wdListSimpleNumbering

これらのリストタイプのそれぞれが何を伴うのかはおそらく理解できますが、実際にどのように機能するかは少し戸惑うかもしれません。例として、次のマクロについて考えてみます。

Sub CheckLists()

Dim oL As List     Dim sMsg As String     Dim J As Integer     Dim K As Integer

J = ActiveDocument.Lists.Count     For Each oL In ActiveDocument.Lists         K = K + 1         oL.Range.Select

sMsg = "This is list " & K & " of " & J         sMsg = sMsg & " lists in the document." & vbCrLf & vbCrLf         sMsg = sMsg & "This list is this type: "

Select Case oL.Range.ListFormat.ListType             Case wdListBullet                 sMsg = sMsg & "wdListBullet"

Case wdListListNumOnly                 sMsg = sMsg & "wdListListNumOnly"

Case wdListMixedNumbering                 sMsg = sMsg & "wdListMixedNumbering"

Case wdListNoNumbering                 sMsg = sMsg & "wdListNoNumbering"

Case wdListOutlineNumbering                 sMsg = sMsg & "wdListOutlineNumbering"

Case wdListPictureBullet                 sMsg = sMsg & "wdListPictureBullet"

Case wdListSimpleNumbering                 sMsg = sMsg & "wdListSimpleNumbering"

End Select         MsgBox sMsg     Next oL End Sub

リストを含むドキュメントがあり、これを実行すると、各リストが順番に選択され、選択が表すとWordが考えるリストの種類を示すメッセージボックスが表示されます。問題は、テキストに1つまたは2つのテキストが散在する2つのリストが含まれている場合、WordはそれをwdListMixedNumberingタイプの単一のリストと見なすことです。つまり、リストとは何か、リストではないものは正確にはわかりません。これにより、この特定のアプローチは、ドキュメント内のリストの数をカウントするのに信頼性が低くなりますが、スタイルカウントアプローチを使用するよりも正確です。

冒頭で述べたように、肝心なのは、ドキュメント内の箇条書きと番号付きリストの数を正確に数える方法がないということです。

注:

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

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

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