2017-01-23 5 views
0

단어 자동화를 시도했지만 오래 전부터 오랜 시간이 걸렸으므로 목록이 포함 된 작업 문서를 만들어야합니다. 첫 번째 단계는 숫자이고 두 번째 단계는 기본적으로 번호 매기기 형식을 모방하지만 실제로 이해할 수는 없습니다.VB.net 문자 들여 쓰기가있는 MS-WORD 번호 목록

코드는 지금까지 들여 쓰기에서 숫자 패턴을 계속합니다.

여기 내가 지금까지 가지고 있고 필요한 화면 캡처 코드가 있습니다. 감사합니다

Public NotInheritable Class Utilities 
Public Shared Sub CreateDocument() 
    'Local Variable Declaration 
    Dim application As New Microsoft.Office.Interop.Word.Application 
    Dim document As Microsoft.Office.Interop.Word.Document 
    Dim range As Microsoft.Office.Interop.Word.Range 

    application.Visible = True 

    'Add a new document 
    document = application.Documents.Add() 

    'Add Header and Footer 
    For Each Item As Microsoft.Office.Interop.Word.Section In document.Sections 
     'Header 
     Dim header As Microsoft.Office.Interop.Word.Range = Item.Headers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range 
     header.Fields.Add(header, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage) 
     header.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter 
     header.Text = "Header" 
     header.Font.Name = "Arial" 
     header.Font.Size = 10.0 
     header.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorRed 

     'Footer 
     Dim footer As Microsoft.Office.Interop.Word.Range = Item.Footers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range 
     footer.Fields.Add(footer, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage) 
     footer.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter 
     footer.Text = "Footer" 
     footer.Font.Name = "Arial" 
     footer.Font.Size = 10.0 
     footer.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorRed 
    Next 

    'Setup Default Range 
    range = document.Range() 
    range.Style = document.Styles("No Spacing") 
    range.Font.Name = "Arial" 
    range.Font.Size = 10.0 
    range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack 

    range.Text = "Line 1" & vbCrLf 
    range.Text &= "Line 2" & vbCrLf & vbCrLf 

    Dim paragraph As Microsoft.Office.Interop.Word.Paragraph = range.Paragraphs.Add 
    paragraph.Range.Text = "First Numbered Line:" 
    paragraph.Range.ListFormat.ApplyNumberDefault(Microsoft.Office.Interop.Word.WdDefaultListBehavior.wdWord10ListBehavior) 
    paragraph.Outdent() 

    Dim list = paragraph.Range.ListFormat.ListTemplate.ListLevels(1).NumberStyle = Microsoft.Office.Interop.Word.WdListNumberStyle.wdListNumberStyleLowercaseLetter 

    paragraph.Range.Paragraphs.Add() 
    paragraph.Range.Paragraphs(1).Range.Text = "Second Character Line" 
    paragraph.Range.Paragraphs(1).Range.ListFormat.ApplyListTemplate(document.ListTemplates(1), True, list) 
    paragraph.Range.Paragraphs(1).Indent() 

    paragraph.Range.InsertParagraphAfter() 
End Sub 

최종 클래스 내가 필요로 무엇

는 : enter image description here

+0

Word에서 매크로를 기록하고 생성 된 코드를 확인하는 것이 더 쉽습니다 (어쨌든 답을주기 위해 수행 한 작업입니다). 목록 속성 중 하나지만 지금은 기억할 수 없습니다. – Slai

답변

0

그래서이 덤비는 몇 시간 이상 후 나는 해결책을 찾아 냈다.

paragraph.Range.ListFormat.ApplyListTemplate(ParagraphTemplate) 

그리고 우리는 추가 텍스트 수준이 같은 전화를 사용합니다 :이 다른 너무 사람을 도움이

‘Text 
    range.Paragraphs.Add() 
    range.Paragraphs(range.Paragraphs.Count).Range.Text = "Test" 
    range.Paragraphs(range.Paragraphs.Count).Range.SetListLevel(2) 

희망

Private Shared Sub SetupParagraphsTemplates(Application As Microsoft.Office.Interop.Word.Application) 
    ParagraphTemplate = Application.ListGalleries(Microsoft.Office.Interop.Word.WdListGalleryType.wdOutlineNumberGallery).ListTemplates(2) 
    ParagraphTemplate.ListLevels(1).NumberStyle = Microsoft.Office.Interop.Word.WdListNumberStyle.wdListNumberStyleArabic 
    ParagraphTemplate.ListLevels(2).NumberFormat = "%2." 
    ParagraphTemplate.ListLevels(2).NumberStyle = Microsoft.Office.Interop.Word.WdListNumberStyle.wdListNumberStyleLowercaseLetter 
    ParagraphTemplate.ListLevels(3).NumberStyle = Microsoft.Office.Interop.Word.WdListNumberStyle.wdListNumberStyleArabic 
    ParagraphTemplate.ListLevels(3).NumberFormat = "%3." 
End Sub 

홈페이지 방법은 템플릿을 적용!