在VB.Net中编辑Word样式

时间:2018-03-27 14:49:02

标签: vb.net ms-word

我希望使用VB.Net Code在文档上编辑Word样式。 这样我的程序在任何地方创建的任何文档都将具有正确的样式。

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

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

Border:
Bottom: (Single solid line, Accent 1, 0.5 pt Line width, From text: 4 pt Border spacing:)

我与文字的距离远远超出了所有东西。 https://msdn.microsoft.com/en-us/vba/word-vba/articles/borders-distancefrombottom-property-word说应该有一个属性,但是当我尝试在我的代码中使用它时,我得到" .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

如果有人需要澄清,请随时提出。

2 个答案:

答案 0 :(得分:1)

关于边框:如果仔细查看您提供的链接,您会看到 Page 边框特定的链接,而不是文本边框。这种边界不能成为一种风格的一部分。

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

缩进是段落格式的一部分。 BeforeAfter不适用于缩进;它们是段落之间的垂直间距。

缩进有三种:LeftIndent,RightIndent和FirstLineIndent。左影响左边距的所有线条;右边缘的所有线条; FirstLine设置第一行与标准设置(LeftIndent) relative 的差异如何与左边距相比。

对于许多书中看到的缩进(第一行是在右边):

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

提示找出所需的对象,属性和方法:在做某事时(在创建或修改样式时)在Word中记录宏,然后查看结果。

答案 1 :(得分:0)

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

在模板中定义样式比在VBA中定义更容易。

如果使用外部文档,您可以将自己的模板应用于该文档。如果您需要进一步清理/检查,可以使用the advice Cindy Meister provided