在VB.Net中编辑文字样式

在VB.Net中编辑文字样式,vb.net,ms-word,Vb.net,Ms Word,我想用VB.Net代码编辑文档中的单词样式。 这样,我的程序在任何地方创建的任何文档都将具有正确的样式 我已经找到了允许我编辑字体、颜色、大小等的代码,但我被困在两个部分上 有些样式有边框,当在Word中查看边框时,会给出以下细分 Border: Bottom: (Single solid line, Accent 1, 0.5 pt Line width, From text: 4 pt Border spacing:) 除了文本的距离之外,我什么都有了。 表示应该有一个属性,但当我尝试在代

我想用VB.Net代码编辑文档中的单词样式。 这样,我的程序在任何地方创建的任何文档都将具有正确的样式

我已经找到了允许我编辑字体、颜色、大小等的代码,但我被困在两个部分上

有些样式有边框,当在Word中查看边框时,会给出以下细分

Border:
Bottom: (Single solid line, Accent 1, 0.5 pt Line width, From text: 4 pt Border spacing:)
除了文本的距离之外,我什么都有了。 表示应该有一个属性,但当我尝试在代码中使用它时,我得到“.DistanceFromBottom不是Border的成员”

有些样式也有缩进,我不知道如何应用它们。Word提供了如下细分:

Indent:
Left:  1.27 cm
Right:  1.65 cm, Space
Before:  10 pt
After:  14 pt
我找不到任何库或代码允许我将缩进作为样式的一部分,但在Word中创建样式时可以。看起来很奇怪,微软会允许你操纵除了缩进之外的几乎所有关于样式的东西

到目前为止,我在样式上的代码是:

With doc.Styles(Word.WdBuiltinStyle.wdStyleIntenseQuote)

        .Font.Bold = True
        .Font.Italic = True
        .Font.Size = 12
        .Font.Name = "Cambria"
        .Font.Color = RGB(79, 129, 189)

        With .Borders(WdBorderType.wdBorderBottom)
            .LineStyle = WdLineStyle.wdLineStyleSingle
            .Color = RGB(79, 129, 189)
            .LineWidth = WdLineWidth.wdLineWidth050pt
        End With

    End With

如果有人需要澄清,请立即询问。

关于边框:如果仔细查看您提供的链接,您会发现它是针对页面边框的,而不是文本周围的边框。这种边框不能作为样式的一部分

如果要创建一种样式来格式化整个段落(指定缩进时就是这种情况),则可能不应该使用链接样式。最好是段落或副歌风格。链接样式可能会非常混乱

缩进是段落格式的一部分<代码>之前和
之后
不适用于缩进;它们是段落之间的垂直间距

缩进有三种:左缩进、右缩进和第一行缩进。“左”影响从左边框开始的所有行;右对齐右边距的所有行;FirstLine设置第一行相对于左边距与标准设置(LeftIndent)的差异

对于许多书籍中看到的缩进(第一行更靠右):

对于悬挂缩进(除第一行外的所有行都缩进-最常用于项目符号或编号):


了解所需对象、属性和方法的提示:在执行某些操作(创建或修改样式)时,在Word中录制宏,然后查看结果。

更简单的方法是限制程序用户仅使用特定模板。然后可以定义(并限制)这些模板中使用的样式

在模板中定义样式比在VBA中定义样式容易得多


使用外部文档时,可以对其应用自己的模板。如果您需要进一步清理/检查,您可以使用。

Hi Cindy。谢谢你的建议。ParagraphFormat属性正是我想要的。我曾尝试使用录制宏来实现我想要的,但它给了我VBA中的代码,而VBA中的代码并不总是与VB.net中的代码兼容,有时我很难找到正确的编码更改。@MattBartlett我完全理解:-)有趣的是,事情是如何分组的-另一个.net开发人员昨天发现了ParagraphFormat,但尝试填充它,然后将其指定给样式,这在VBA中不起作用,但在.NET中通常起作用。现在我的头撞到了一个多级别列表上。样式都很好,我有代码将数字应用于正在使用的样式。问题是,没有一个较低的级别引用较高级别的编号。您是否有在VB.Net中使用多级编号的经验?请提出一个新问题:-)但首先在Word中使用多级编号-下拉列表中关于定义新名称的最后一项。在该对话框中单击“更多”并探索如何工作。有一个包含以前级别的设置。当你有工作记录宏和研究结果(它的冗长)。
Dim doc As Word.Document = ActiveDocument
Dim styl as Word.Style = doc.styles.Add("IndentStyle", wdStyleTypeParagraphOnly)
styl.ParagraphFormat.FirstLineIndent = 7
Dim doc As Word.Document = ActiveDocument
Dim styl as Word.Style = doc.styles.Add("IndentStyle", wdStyleTypeParagraphOnly)
styl.ParagraphFormat.LeftIndent = 7
styl.ParagraphFormat.FirstLineIndent = -7 'Puts it at 0 relative to margin