使用VB对word文档进行格式调整

在word文档中,有时候会出现大量表格,在需要调整格式时,只能一个一个手动刷格式,这样不仅费时而且很费力。本人在写文档时,碰到这种情况,熬夜干活儿,太累。所以下定决心,抽点时间研究WORD中的宏编程。经过测试,基本上能批量改变word中的样式。下面附上本人研究VB代码,打开word中的宏。

操作方式:开发工具(如果没有,直接点击工具栏,右键,自定义工具,选择开发工具),如果有兴趣研究的话,可以采用录制宏的方式,查看其代码



Sub Doc_tableupdate()
'处理所有表格的Table,ActiveDocument.Tables.Count获取表格数
For i = 1 To ActiveDocument.Tables.Count
'定义为Table的第一行的颜色
ActiveDocument.Tables(i).Rows(1).Shading.ForegroundPatternColor = -570366209
'j用来控制行,m用来控制列,实现两个循环
For j = 2 To ActiveDocument.Tables(i).Rows.Count
For m = 1 To ActiveDocument.Tables(i).Columns.Count
ActiveDocument.Tables(i).Cell(j,m).Range.Bold = 0
'ActiveDocument.Tables(i).Cell(j,m).Range.Paragraphs.Format.Style
ActiveDocument.Tables(i).Cell(1,m).Range.Paragraphs.Alignment = wdalignParagraphCenter
ActiveDocument.Tables(i).Cell(j,m).Range.Paragraphs.LeftIndent = -2
ActiveDocument.Tables(i).Cell(j,m).Range.Style.Font.Name = "宋体"
ActiveDocument.Tables(i).Cell(j,m).Range.Style.Font.Size = 12
Next m
Next j
Next i

End Sub


Sub editContent() ' ' 宏1 宏 ' 'with为重新定义正文样式 With ActiveDocument.Styles("正文").Font .Namefareast = "黑体" .NameAscii = "+西文正文" .NameOther = "+西文正文" .Name = "+西文正文" .Size = 14 .Bold = False .Italic = False .Underline = wdUnderlineNone .UnderlineColor = wdColorAutomatic .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .emboss = False .Shadow = False .Hidden = False .SmallCaps = False .AllCaps = False .Color = wdColorAutomatic .Engrave = False .Superscript = False .Subscript = False .Scaling = 100 .Kerning = 1 .Animation = wdAnimationNone .disableCharacterSpaceGrid = False .EmphasisMark = wdEmphasisMarkNone .ligatures = wdligaturesNone .NumberSpacing = wdNumberSpacingDefault .NumberForm = wdNumberFormDefault .StylisticSet = wdStylisticSetDefault .ContextualAlternates = 0 End With With ActiveDocument.Styles("正文").ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 0 .SpaceBeforeAuto = False .SpaceAfter = 0 .SpaceAfterauto = False .LinespacingRule = wdLinespace1pt5 .Alignment = wdalignParagraphJustify .WidowControl = False .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = CentimetersToPoints(0.35) .OutlineLevel = wdOutlineLevelBodyText .CharacterUnitLeftIndent = 0 .CharacterUnitRightIndent = 0 .CharacterUnitFirstLineIndent = 2 .LineUnitBefore = 0 .LineUnitAfter = 0 .MirrorIndents = False .TextBoxTightWrap = wdTightNone .AutoAdjustRightIndent = True .disableLineHeightGrid = False .fareastLineBreakControl = True .WordWrap = True .HangingPunctuation = True .HalfWidthPunctuationOnTopOfLine = False .AddspaceBetweenfareastAndAlpha = True .AddspaceBetweenfareastAndDigit = True .BaseLineAlignment = wdBaselineAlignAuto End With ActiveDocument.Styles("正文").NoSpaceBetweenParagraphsOfSameStyle = False With ActiveDocument.Styles("正文") .AutomaticallyUpdate = False .BaseStyle = "" .NextParagraphStyle = "正文" End With End Sub Sub applyStyles() ' ' applyStyles 宏 ' ' Selection.Style = ActiveDocument.Styles("正文") End Sub Sub testApplyStyles() 'For i = 1 To ActiveDocument.Paragraphs.Count 'ActiveDocument为当前活动文档,Paragraphs为段落。该句含义为将文档所有正文使用样式正文,wdStylenormal为正文认,wdStyleheading1为标题1,依此类推 ActiveDocument.Paragraphs.Style = ActiveDocument.Styles("正文") 'Next ' ActiveDocument.Styles("正文").NoSpaceBetweenParagraphsOfSameStyle = False ' With ActiveDocument.Styles("测试样式") ' .AutomaticallyUpdate = False ' .BaseStyle = "" ' .NextParagraphStyle = "测试样式" ' End With End Sub

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...