2016-12-19 8 views
0

MS Word VBAを使用するWord文書内の次の入れ子リストをhtml入れ子リストに変換する方法を教えてください。私はWord-VBAで知っているActiveDocument.Listsはすべてのリストのコレクションであり、ListParagraphsはリストのリストアイテムのコレクションです。しかし、私は、Word文書に次のネストされたリストのハンドルを取得するためにこれらのコレクションをループにできないよ:MS Word VBAを使用してWord文書の入れ子リストをHTML入れ子リストに変換する

Word文書ネストされたリスト

enter image description here

HTMLネストされたリスト

<ol> 
    <li>Test1</li> 
    <li>Test2</li> 
    <ul> 
     <li>Test2a</li> 
     <li>Test2b</li> 
    </ul> 
    <li>Test3</li> 
    <li>Test4</li> 
</ol> 

UPDATE

ユーザ@TimWilliamsのコードを使用すると、実際にはサブリストを別のリスト2(以下に示す)として扱うという結果が得られます。しかし、私はリスト2が本当にリスト1の入れ子リストであることを知る必要があります。これをどのように達成できますか?

List: 1  Level: 1  Label: 1.  Text: Test1 
List: 1  Level: 1  Label: 2.  Text: Test2 
List: 1  Level: 1  Label: 3.  Text: Test3 
List: 1  Level: 1  Label: 4.  Text: Test4 
List: 2  Level: 2  Label: a)  Text: Test2a 
List: 2  Level: 2  Label: b)  Text: Test2b 
+0

「ListLevelNumber」で始まる可能性があります - http://stackoverflow.com/questions/8424573/word2010-vba-manipulating-numbered-lists –

答えて

1

状態で始める必要があります。

Sub Tester() 

    Dim doc As Document, l As List, lp, i, x 

    Set doc = ActiveDocument 

    For x = 1 To doc.Lists.Count 

     Set l = doc.Lists(x) 

     For i = 1 To l.ListParagraphs.Count 
      Set lp = l.ListParagraphs(i).Range 
      Debug.Print "List: " & x, _ 
         "Level: " & lp.ListFormat.ListLevelNumber, _ 
         "Label: " & lp.ListFormat.ListString, _ 
         "Text: "; Replace(lp.Text, vbCr, "") 

     Next i 
    Next x 

End Sub 

EDIT:は新鮮な文書を開くと、あなたの例のリストに上記のコードを実行している、これは私が手に出力されます。

List: 1  Level: 1  Label: 1.  Text: Test1 
List: 1  Level: 1  Label: 2.  Text: Test2 
List: 1  Level: 2  Label: a.  Text: Test2a 
List: 1  Level: 2  Label: b.  Text: Test2b 
List: 1  Level: 1  Label: 3.  Text: Test3 
List: 1  Level: 1  Label: 4.  Text: Test4 

私たちのリストは何らかの形で異なっ作成してしまったように思える:私は私のサブリストの項目をインデントし、Shiftキーを押しながらタブをバックトップレベルのリストを取得するには、タブを使用していました。

+0

私の投稿に** UPDATE **セクションが追加されましたあなたのコードの結果とその結果に関する質問。 – nam

+0

1.リストの作成方法が違うことに同意します。あなたとは異なる出力であったリボンに 'Multilevel List menu'を使っていました。しかし、同じネストされたリストを生成するあなたの方法を使用するとき、私はあなたの出力を得ています - それは私が必要なものです。あなたのEDITを追加してくれてありがとう、もっと重要なことに、あなたがリストをどのように生成したのかを説明してください(そうでなければ、何が起こっているのか、あなたのアウトプットを思いつく方法を考え出していました)。私はあなたが何を理解したのか、それからあなたがガイドラインを提供したのが好きです。 HTMLネストされたリストの例は、デモのためだけのものでした。 – nam

+0

あなたはそれが働いていることを聞いてよかった! –

関連する問題