2016-12-19 1 views
0

MS Word VBA 사용 Word 문서의 다음 중첩 목록을 HTML 중첩 목록으로 변환하는 방법은 무엇입니까? Word-VBA에서 알고있는 ActiveDocument.Lists은 모든 목록 모음이며 ListParagraphs은 목록의 목록 항목 모음입니다.MS Word VBA를 사용하여 Word 문서의 중첩 목록을 HTML 중첩 목록으로 변환

Word 문서 중첩 된 목록 :

enter image description here

HTML 중첩 된 목록 :하지만 Word 문서에서 다음과 같은 중첩 된리스트의 핸들을 얻을 이러한 컬렉션을 반복 드릴 수 없습니다

<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 

편집 :은 새로운 문서를 열고 귀하의 예제 목록에 위의 코드를 실행, 이것은 내가 얻을 출력됩니다.

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. 나는 우리가 우리의 목록을 다르게 만드는 것에 동의한다. 나는 당신과 다른 결과물 인 리본에 '다중 레벨 목록 메뉴'를 사용하고있었습니다. 그러나 동일한 중첩 목록을 생성하는 방법을 사용할 때 출력을 얻고 있습니다. 이것이 내가 필요한 것입니다. EDIT를 추가해 주셔서 감사 드리며 목록 생성 방법에 대해 더 자세히 설명해 주셔서 감사합니다 (그렇지 않은 경우, 무슨 일이 일어나고 있는지, 출력 방법을 고안해 내 머리를 긁어 냈을 것입니다). 2. 나는 내가 무엇을했는지 어떻게 이해했는지, 그리고 지침을 제공했는지를 좋아한다. HTML 중첩 목록 예제는 데모 용이었습니다. – nam

+0

잘 듣고 반갑습니다! –