vba获取word某一段文字格式,vba中word遍历每个文字
vb如何检测word的段落格式
VB??
我记得是在VB中引用WORD,然后用VBA来检查段落的样式。不知道你是不是说的这个意思。代码吗,很简单:
set wrdobj=createobject("word.application")
set docobj=wrdobj.documents.open(此处是word文件的路径)
然后就检测
docobj.Paragraphs(第几段).range.style
就可以了,因为我最近也在做个VBA的小项目,所以上面的代码是可以通过的。
word用vba选中某一段中某几个字符怎么写
提供一个方案给楼主参考,可以批量修改多个文档中某个指定文字的属性:
1、启动Word后,键入Alt+F11打开VBA编辑窗口;
2、选择菜单“插入-模块”,然后在代码编辑区中粘贴如下代码:
Option Explicit
Const g_strRootPath = "c:\Docs\" ' 指定存放所有文件的目录,可以有子目录
Const g_strTextToFind = "茶" ' 需要批量查找修改格式的文字内容
Dim g_oTargetFont As New Font
' 主函数
Sub Main()
Dim fso, oFolder
' 设置需要修改的字体属性
g_oTargetFont.Size = 18 ' 字号
g_oTargetFont.Color = wdColorRed ' 颜色
g_oTargetFont.Bold = True ' 是否加粗(True加粗,False正常)
g_oTargetFont.Italic = True ' 是否斜体(True斜体,False正常)
g_oTargetFont.Underline = wdUnderlineDash ' 下划线风格
'... 设置其他字体属性
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(g_strRootPath)
ChangeFontStyleForFilesUnderFolder fso, oFolder
MsgBox "完成!"
End Sub
' 修改指定文件夹(递归)下面的所有Word文件中指定文字的格式
Sub ChangeFontStyleForFilesUnderFolder(fso, oFolder)
Dim oSubFolder, oFile
For Each oSubFolder In oFolder.SubFolders
ChangeFontStyleForFilesUnderFolder fso, oSubFolder
Next
For Each oFile In oFolder.Files
Documents.Open oFile.Path
ChangeFontStyleForActiveDocument
ActiveDocument.Close True
Next
End Sub
' 修改当前打开文档里面所有指定文字的格式
Sub ChangeFontStyleForActiveDocument()
Selection.StartOf wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = g_strTextToFind
.Replacement.Text = "^"
.Replacement.Font = g_oTargetFont
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
3、修改代码开始处的两个参数:存放所有需要批量修改文档的根目录(下面可以包含子目录,比如“C:\Docs”),需要修改的文字(比如“茶”字,也可以是一个词或者句子);
4、修改“主函数”里面想要设置的字体属性,如字号、颜色、加粗、斜体、下划线,等等;
4、键入F5运行,直到看到“完成!”。
5、检查各个文档里面指定的文字是否已经被设置成了指定的格式。
vba设置word文档的格式
①将格式应用于选定内容
下列示例使用Selection属性将字符和段落格式应用于选定文本。使用Font属性获得字体格式的属性和方法,使用ParagraphFormat属性获得段落格式的属性和方法。
Sub
FormatSelection()
With
Selection.Font
.Name
=
"Times
New
Roman"
.Size
=
14
.AllCaps
=
True
End
With
With
Selection.ParagraphFormat
.LeftIndent
=
InchesToPoints(0.5)
.Space1
End
With
End
Sub
②将格式应用于某一区域
下列示例定义了一个Range对象,它引用了活动文档的前三个段落。通过应用Font
和ParagraphFormat对象的属性来设置
Range对象的格式。
Sub
FormatRange()
Dim
rngFormat
As
Range
Set
rngFormat
=
ActiveDocument.Range(
_
Start:=ActiveDocument.Paragraphs(1).Range.Start,
_
End:=ActiveDocument.Paragraphs(3).Range.End)
With
rngFormat
.Font.Name
=
"Arial"
.ParagraphFormat.Alignment
=
wdAlignParagraphJustify
End
With
End
Sub
③插入文字并应用字符和段落格式
下列示例在当前文档的上部添加单词
Title。第一段居中对齐,并在该段落之后添加半英寸的间距。将单词
Title
的格式设为
24
磅
Arial
字体。
Sub
InsertFormatText()
Dim
rngFormat
As
Range
Set
rngFormat
=
ActiveDocument.Range(Start:=0,
End:=0)
With
rngFormat
.InsertAfter
Text:="Title"
.InsertParagraphAfter
With
.Font
.Name
=
"Tahoma"
.Size
=
24
.Bold
=
True
End
With
End
With
With
ActiveDocument.Paragraphs(1)
.Alignment
=
wdAlignParagraphCenter
.SpaceAfter
=
InchesToPoints(0.5)
End
With
End
Sub
④在
12
磅和无之间切换段前间距
下列示例切换选定内容中第一段的段前间距。宏将获取当前段前间距的值,如果该值为
12
磅,则删除段前间距格式(将SpaceBefore属性设为零)。如果段前间距的值为除
12
外的其它数值,则将
SpaceBefore属性设为
12
磅。
Sub
ToggleParagraphSpace()
With
Selection.Paragraphs(1)
If
.SpaceBefore
Then
.SpaceBefore
=
Else
.SpaceBefore
=
6
End
If
End
With
End
Sub
⑤切换加粗格式
下列示例切换选定文本的加粗格式。
Sub
ToggleBold()
Selection.Font.Bold
=
wdToggle
End
Sub
⑥将左边距增加
0.5
英寸
下列示例将左边距和右边距增加
0.5
英寸。PageSetup对象包含文档的所有的页面设置属性(左边距、下边距、纸张大小等)。LeftMargin属性用于返回和设置左边距设置。RightMargin属性用于返回和设置右边距设置。
Sub
FormatMargins()
With
ActiveDocument.PageSetup
.LeftMargin
=
.LeftMargin
+
InchesToPoints(0.5)
.RightMargin
=
.RightMargin
+
InchesToPoints(0.5)
End
With
End
Sub