我希望使用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
如果有人需要澄清,请随时提出。
答案 0 :(得分:1)
关于边框:如果仔细查看您提供的链接,您会看到 Page 边框特定的链接,而不是文本边框。这种边界不能成为一种风格的一部分。
如果您要创建样式来格式化整个段落(指定缩进时就是这种情况),您可能不应该使用链接样式。更好的段落或ParagarphOnly风格。链接的风格可能非常混乱。
缩进是段落格式的一部分。 Before
和After
不适用于缩进;它们是段落之间的垂直间距。
缩进有三种: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。