2

このような番号付きリストを含む Word 文書があります。

  1. アイテム1
  2. 項目 2
  3. アイテム3

リストのスタイルは「List Paragraph」です。"List Paragraph" の左インデントは 0.5" です。次のコードを実行してスタイル "List Paragraph" を再適用すると、スタイルの左インデントは 0.75" になります。

Dim t As ListTemplate
Set t = ActiveDocument.Styles("List Paragraph").ListTemplate
t.ListLevels(1).ResetOnHigher = True
Selection.Range.ListFormat.ApplyListTemplate t, False, wdListApplyToWholeList

その結果、リストは右に 0.25" シフトされます。 メソッド ApplyListTemplate がスタイル "List Paragraph" の左インデントを変更する理由が不思議です。

コードを適用する前と適用した後のスタイルの説明は次のとおりです。

"Indent:
Left:  0.5"
Hanging:  0.25", Numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at:  0.75" + Indent at:  1", Style: Quick Style, Priority: 35
Based on: Text"

"Indent:
Left:  0.75"
Hanging:  0.25", Outline numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at:  0.75" + Indent at:  1", Style: Quick Style, Priority: 35
Based on: Text"

Office 2003 と 2010 の両方で同じ動作を見つけました

4

1 に答える 1

0

「要求されたコレクションのメンバーが存在しません」という実行時エラー 5941 が表示されるため、正確なコードをテストできません。

そうは言っても、Word には (とにかく私にとっては) リストの書式設定が変更されるたびにリストのインデントを "修正" する傾向があります。リストの "修正" を停止するように Word に指示する設定がある可能性がありますが、コードの最後に次のコードを追加することをお勧めします。

With Selection.ParagraphFormat
    .LeftIndent = InchesToPoints(0.75)          ' Left indent
    .RightIndent = InchesToPoints(0)            ' Right indent
    .FirstLineIndent = InchesToPoints(-0.25)    ' First line indent
End With

これにより、0.5 インチの左インデントと 0.25 インチのぶら下げインデントが得られます (数字が少し奇妙に見えるかもしれませんが)。.RightIndent =で始まる中間行は必要ありませんが、それも変更したい場合に備えて含めると思います。

于 2011-10-13T22:27:55.573 に答える