Wordには、リストをすばやく作成するために使用できる番号付きリスト機能が組み込まれています。これは、昇順(1から10)のリストには最適ですが、降順(10から1)のリストにはあまり適していません。

リバースリストが必要な場合、Wordにはリストを作成できる自動機能はありません。これを回避する1つの方法は、独自のリスト番号を作成し、それらを希望の順序で配置することです。これに伴う問題は、プロセスが手動で集中的に行われることです。さらに、Wordの通常の番号付きリスト機能は、既存のリスト項目の最後でEnterキーを押すと、逆順のリストで大混乱を引き起こす可能性があります。

この状況を処理する別の方法は、リスト内の各項目の前にSEQフィールドを付けて、リスト項目の番号を生成することです。リストアイテムが完成したら、フィールドを更新し、段落を降順で並べ替えることができます。このアプローチの明らかな欠点は、最初のリストを逆の順序で入力する必要があることです。これは、最後の並べ替えによって順序が決まるためです。したがって、アイテムが10個ある場合は、最初に10番を入力し、次に9番を入力します。並べ替えを行うと、アイテムの順序が逆になり、各アイテムが最終的な順序になります。

これのもう1つの欠点は、リストに項目を追加するのが面倒になり、ドキュメントのフィールドを更新すると、番号が完全に破棄されることです。したがって、より満足のいくアプローチを見つける必要があります。

1つの方法は、SEQフィールドを変更して、段落の意図した順序をより適切に表示することです。リスト番号に複合フィールドを使用すると、次の方法でこれを行うことができます。

{=NP — {SEQ RevList}}

この場合、文字NPは、最終リストの項目数より1つ大きい数字に置き換える必要があります。したがって、リストが25項目で構成されている場合、NPは26になります。SEQフィールドは、NPから減算された番号の昇順を生成して、最終的な逆順の番号を付けるために使用されます。

リスト内の段落(項目)の数を知っていて、各段落の先頭にフィールドを配置することを忘れない限り、状態は良好です。どちらかを忘れると、リストが破棄される可能性があります。これを解決するには、マクロが便利です。次のマクロ(RevListとDoList)でうまくいきます。

Sub RevList()

Dim ShowFlag As Boolean     Dim Numparas As Integer     Dim Counter As Integer

Numparas = Selection.Paragraphs.Count     Selection.MoveLeft Unit:=wdCharacter, Count:=1     ShowFlag = ActiveWindow.View.ShowFieldCodes     ActiveWindow.View.ShowFieldCodes = True     DoList Numparas     Counter = 1     While Counter < Numparas         Selection.Move Unit:=wdParagraph, Count:=1         DoList Numparas         Counter = Counter + 1     Wend     ActiveWindow.View.ShowFieldCodes = ShowFlag     ActiveDocument.Select     ActiveDocument.Fields.Update End Sub
Private Sub DoList(Cnt As Integer)

Selection.Extend     Selection.MoveRight Unit:=wdCharacter, Count:=1     If InStr(Selection.Text, "SEQ") > 0 Then         Selection.MoveRight Unit:=wdCharacter, Count:=2         Selection.Delete Unit:=wdCharacter, Count:=1     Else         Selection.Collapse Direction:=wdCollapseStart     End If     Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _         PreserveFormatting:=False     Selection.TypeText Text:="=" & Cnt + 1 & "-"

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _         PreserveFormatting:=False     Selection.TypeText Text:="SEQ RevList"

With Selection.ParagraphFormat         .LeftIndent = InchesToPoints(0.5)

.FirstLineIndent = InchesToPoints(-0.5)

End With     Selection.MoveRight Unit:=wdCharacter, Count:=4     Selection.InsertAfter "." & vbTab End Sub

マクロを使用するには、リストに含める段落を選択してから、RevListを実行します。RevListはDoListを使用します。適切なフィールドが各段落の先頭に配置され(すでに存在するものはすべて削除されます)、段落にぶら下げインデントが適用されます。

ぶら下がっているインデントの作成方法を変更する場合は、LeftIndentプロパティとFirstLineIndentプロパティが設定されているDoListマクロの行を変更するだけです。

注:

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

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

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1759)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: