因此,自从我尝试进行任何单词自动化以来,已经有很长一段时间,但长话短说,我需要创建一个包含列表的工作文档。第一个级别是数字,第二个级别是字母,基本上模仿开箱即用的默认编号格式,但无法理解它。
到目前为止我的代码只是继续缩进的数字模式。
这是我到目前为止的代码以及我需要的屏幕截图。感谢
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
结束班
答案 0 :(得分: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
主要方法应用模板:
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)
希望这也有助于其他人!