超星尔雅东方电影答案:VBA - 改变 Word 中对象模型的属性-“十万个为什么”电脑学习网文章收藏
来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 19:25:52
文章收藏 您的位置:主页 >> 文章收藏VBA - 改变 Word 中对象模型的属性 用户在Word中操作的每一个东西都是一个对象,如文档、对话框、文本框、图形、图表甚至Word本身都是对象,这些对象都有自己的属性和方法。因此,用户可以通过编程来访问这些已有的对象,改变它们的属性,以完成某些较特殊的操作。在对象模型中,还有一个重要的概念是集合(Collections)。所谓集合,就是一组相近对象的组合,属于一个更大的对象,例如Sentences、Words和Characters对象,就可看成一个集合,它们隶属于Range 对象,集合的重要属性是可以对其进行整体操作。本文以改变Word文档属性来说明Word对象模型的应用。
Word文档属性的整体改变
我们有时想将Word文档的属性(如字体、字号等)作整体改变,最常见的例子是将整篇文档的字体都按比例增大或减小一号,如果整篇文档都采用同一属性,那么就可全选整个文档,然后改变属性即可;如果文档中的不同部分的属性不同,我们就很难对其进行整体操作,唯一的办法是选择文档的不同部分进行分别操作,这样做不仅费时,而且容易出错。若借助Word的对象模型,我们就可轻易地对整个文档中的每一段、句和单词甚至是单个字的属性进行准确控制,下面以字号属性为例(其他属性类似),将文档中的所有字的字号都减小一号。
1. 以Paragraphs(段)为操作对象,将文档中的每一段的字号都减小一号
如果Word文档中的各段落的字号不相同,但段落内部的字号都相同,则可以通过改变段落对象的字号属性来达到我们的目的。代码如下。
Sub paragraph()
On Error Resume Next
Dim myParagraph As paragraph
’对每一段落进行操作
For Each myParagraph In ActiveDocument.
Paragraphs
’如果该段落中的字号不尽一致或有其他格式,Word段落字号属性的返回值将为9999 9,此时使用段落对象模型不能改变该段落的字号,故退到下一段
If myParagraph.Range.Font.Size 〉1000 Then Exit For
’将该段的字号减小一号
myParagraph.Range.Font.Size=myParagraph.Range.Font.Size-1
Next myParagraph
End Sub
2. 以Sentences(句子)为对象,将文档中每一句的字号都减小一号
……
Dim I, J As Integer
’统计每一段中句子的总数
J = myParagraph.Range.sentences.Count
For I = 1 To J
’防止同一句中出现不同的字号
If myParagraph.Range.sentences(I).Font.Size〉1000 Then Exit For
’将每一句的字号减小一号
myParagraph.Range.sentences(I).Font.Size=myParagraph.Range.sentences(I). Font.Size -1
Next I
……
3. 以Words(单词)为操作对象,将文档中的每一单词的字号都减小一号
……
For Each myParagraph In ActiveDocument.Paragraphs
’统计每一段中总单词数
J = myParagraph.Range.words.Count
’将每一个单词的字号减小一号
For I = 1 To J
myParagraph.Range.words(I).Font.Size = myParagraph.Range.words(I).Font.S ize - 1
Next I
……
4. 以Characters(单字)为操作对象,将文档中的每一个字的字号减小一号
……
For Each myParagraph In ActiveDocument.Paragraphs
’统计每一段中总字数
J = myParagraph.Range.characters.Count
’将每一个字的字号减小一号
For I = 1 To J
myParagraph.Range.characters(I).Font.Size=myParagraph.Range.characters(I ).Font.Size-1
Next I
……
带格式单词的替换
Word自身有替换命令(ctrl+h),但该命令的不足之处是,不能对带格式的单词进行替换,例如,要将整篇文档中的H2CO3替换成H2CO3,该命令就无能为力了。下面介绍如何借助Word中的对象模型来实现替换。
Sub ReplaceWord()
On Error Resume Next
’对文档中的H2CO3进行格式替换
Dim myParagraph As Paragraph
Dim I, J As Integer
Dim tmpStr As String
’对每一段进行操作
For Each myParagraph In ActiveDocument.Paragraphs
’统计该段的单词数
J = myParagraph.Range.words.Count
For I = 1 To J
’比较字符串,查找所有替换的单词
If (LCase(myParagraph.Range.words(I)) = “h2co3“)
Then
’选择所替换的单词
myParagraph.Range.words(I).Select
’替换单词,写入字母H
Selection.TypeText Text:=“H“
’将其格式变为下标
Selection.Font.Subscript = True
’写入下标2
Selection.TypeText Text:=“2“
’字体变为正常体
Selection.Font.Subscript = False
’写入字母CO
Selection.TypeText Text:=“CO“
’将其格式变为下标
Selection.Font.Subscript = True
’写入下标3
Selection.TypeText Text:=“3“
’字体变为正常体
Selection.Font.Subscript = False
End If
Next I
Next myParagraph
End Sub 上面程序段运行后,即可将文档中所有的H2CO3全部替换成H2CO3。而且,我们还可在VBA中插入窗体,编写出同Word替换命令类似的窗口界面,来进行带格式单词的替换。 [文章来源:“十万个为什么”电脑学习网]
[网络地址:http://why100000.com]
[版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
[人气:1672] [更新时间:2007-4-16 16:05:40] [最后访问时间:2010-11-16 17:43:15] 【字体:[大] [中] [小]】 【打印本文】 【加入收藏】 【发表评论】 【关闭本窗口】 Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com QQ:9365822 本文来自“十万个为什么”电脑学习网 http://www.why100000.com
Word文档属性的整体改变
我们有时想将Word文档的属性(如字体、字号等)作整体改变,最常见的例子是将整篇文档的字体都按比例增大或减小一号,如果整篇文档都采用同一属性,那么就可全选整个文档,然后改变属性即可;如果文档中的不同部分的属性不同,我们就很难对其进行整体操作,唯一的办法是选择文档的不同部分进行分别操作,这样做不仅费时,而且容易出错。若借助Word的对象模型,我们就可轻易地对整个文档中的每一段、句和单词甚至是单个字的属性进行准确控制,下面以字号属性为例(其他属性类似),将文档中的所有字的字号都减小一号。
1. 以Paragraphs(段)为操作对象,将文档中的每一段的字号都减小一号
如果Word文档中的各段落的字号不相同,但段落内部的字号都相同,则可以通过改变段落对象的字号属性来达到我们的目的。代码如下。
Sub paragraph()
On Error Resume Next
Dim myParagraph As paragraph
’对每一段落进行操作
For Each myParagraph In ActiveDocument.
Paragraphs
’如果该段落中的字号不尽一致或有其他格式,Word段落字号属性的返回值将为9999 9,此时使用段落对象模型不能改变该段落的字号,故退到下一段
If myParagraph.Range.Font.Size 〉1000 Then Exit For
’将该段的字号减小一号
myParagraph.Range.Font.Size=myParagraph.Range.Font.Size-1
Next myParagraph
End Sub
2. 以Sentences(句子)为对象,将文档中每一句的字号都减小一号
……
Dim I, J As Integer
’统计每一段中句子的总数
J = myParagraph.Range.sentences.Count
For I = 1 To J
’防止同一句中出现不同的字号
If myParagraph.Range.sentences(I).Font.Size〉1000 Then Exit For
’将每一句的字号减小一号
myParagraph.Range.sentences(I).Font.Size=myParagraph.Range.sentences(I). Font.Size -1
Next I
……
3. 以Words(单词)为操作对象,将文档中的每一单词的字号都减小一号
……
For Each myParagraph In ActiveDocument.Paragraphs
’统计每一段中总单词数
J = myParagraph.Range.words.Count
’将每一个单词的字号减小一号
For I = 1 To J
myParagraph.Range.words(I).Font.Size = myParagraph.Range.words(I).Font.S ize - 1
Next I
……
4. 以Characters(单字)为操作对象,将文档中的每一个字的字号减小一号
……
For Each myParagraph In ActiveDocument.Paragraphs
’统计每一段中总字数
J = myParagraph.Range.characters.Count
’将每一个字的字号减小一号
For I = 1 To J
myParagraph.Range.characters(I).Font.Size=myParagraph.Range.characters(I ).Font.Size-1
Next I
……
带格式单词的替换
Word自身有替换命令(ctrl+h),但该命令的不足之处是,不能对带格式的单词进行替换,例如,要将整篇文档中的H2CO3替换成H2CO3,该命令就无能为力了。下面介绍如何借助Word中的对象模型来实现替换。
Sub ReplaceWord()
On Error Resume Next
’对文档中的H2CO3进行格式替换
Dim myParagraph As Paragraph
Dim I, J As Integer
Dim tmpStr As String
’对每一段进行操作
For Each myParagraph In ActiveDocument.Paragraphs
’统计该段的单词数
J = myParagraph.Range.words.Count
For I = 1 To J
’比较字符串,查找所有替换的单词
If (LCase(myParagraph.Range.words(I)) = “h2co3“)
Then
’选择所替换的单词
myParagraph.Range.words(I).Select
’替换单词,写入字母H
Selection.TypeText Text:=“H“
’将其格式变为下标
Selection.Font.Subscript = True
’写入下标2
Selection.TypeText Text:=“2“
’字体变为正常体
Selection.Font.Subscript = False
’写入字母CO
Selection.TypeText Text:=“CO“
’将其格式变为下标
Selection.Font.Subscript = True
’写入下标3
Selection.TypeText Text:=“3“
’字体变为正常体
Selection.Font.Subscript = False
End If
Next I
Next myParagraph
End Sub 上面程序段运行后,即可将文档中所有的H2CO3全部替换成H2CO3。而且,我们还可在VBA中插入窗体,编写出同Word替换命令类似的窗口界面,来进行带格式单词的替换。 [文章来源:“十万个为什么”电脑学习网]
[网络地址:http://why100000.com]
[版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
[人气:1672] [更新时间:2007-4-16 16:05:40] [最后访问时间:2010-11-16 17:43:15] 【字体:[大] [中] [小]】 【打印本文】 【加入收藏】 【发表评论】 【关闭本窗口】 Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com QQ:9365822 本文来自“十万个为什么”电脑学习网 http://www.why100000.com
VBA - 改变 Word 中对象模型的属性-“十万个为什么”电脑学习网文章收藏
收藏极品:动画片十万个为什么
人体的十万个为什么
创业的十万个为什么
ACCESS数据库中Field对象的caption属性读写
开机按F1的解决方法【图解】—电脑十万个为什么
电脑十万个为什么(很不错的电子书)无广告绿色版
“一千零一夜”里的“十万个为什么”
说说“十万个为什么”
十万个为什么[动画版]
十万个为什么动画版
十万个为什么
十万个为什么
十万个为什么
十万个为什么动画片
动画片十万个为什么
十万个为什么
十万个为什么动画版
十万个为什么全集
为什么毛泽东的女儿不姓毛? - 十万个为什么
伊扎特:关于《十万个为什么》的几点注解 ———爱思想:学习型社会领航者
动画版十万个为什么 全集
十万个为什么 - 儿童有声读物
动画版十万个为什么050