1.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段落字号属性的返回值将为99999, 此时使用段落对象模型不能改变该段落的字号,故退到下一段 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。
Size - 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替换命令类似的窗口界面,来进行带格式单词的替换。
2.word中如何默认关闭设计模式
试试这个 如果可以,加分,哈哈~~~ 工具-宏-设置成低 to crazy0ball 你的问题我在网上查了好多资料,但是到目前为止,还没有办法直接解决这个问题的办法,估计是很难,或者说没有办法直接解决,因为,在你之前,在好几个OFFICE专业论坛上已经有人就这问题进行了探讨,没有一个最终的解决方案. 其实,说到低,就是因为WORD默认的宏安全级别为高,因此,无论在VBA里写什么代码,都无法运行,所以,想用VBA解决不可能,同样,如果是问卷调查,为了方便性,我们一般不会要求客户把自己WORD的宏降为低. 我甚至找了有没有办法解决将WORD宏直接将为低等办法,但基本是要依靠VBA,呵呵,代码都无法运行,怎么执行啊~~~ 还有一种方式,就是通过数字签名,但好象需要付费,另外在可户端操作起来怎么样就不清楚了,具体的你可以查询一些资料.最好想到了将WORD封装成EXE文件,我试了一下,好象可以,我将WORD宏设成高,用生成的EXE打开后,虽然在左上脚显示控件工具箱,但已经不是设计模式了. 你同样把你的WORD设成默认的高,保存后退出,利用工具生成EXE文件,然后打开看看,如果是设计模式,取消设计模式,保存退出,再打开~~ 我这测试一次成功,希望你也可以,就是不知道这样你是否能接受,其实只要不影响你其他内容,用WORD,还是封装后的EXE,对客户来说,没什么影响. 至少个人感觉利用工具封装是个不错的选择,除了解决你的问题外,还可以多的技术含量,呵呵~~~下面是转换工具,和我做的一个TEST文件,你试一下: 。
3.word中如何默认关闭设计模式
试试这个
如果可以,加分,哈哈~~~
工具-宏-设置成低
to crazy0ball
你的问题我在网上查了好多资料,但是到目前为止,还没有办法直接解决这个问题的办法,估计是很难,或者说没有办法直接解决,因为,在你之前,在好几个OFFICE专业论坛上已经有人就这问题进行了探讨,没有一个最终的解决方案.
其实,说到低,就是因为WORD默认的宏安全级别为高,因此,无论在VBA里写什么代码,都无法运行,所以,想用VBA解决不可能,同样,如果是问卷调查,为了方便性,我们一般不会要求客户把自己WORD的宏降为低.
我甚至找了有没有办法解决将WORD宏直接将为低等办法,但基本是要依靠VBA,呵呵,代码都无法运行,怎么执行啊~~~
还有一种方式,就是通过数字签名,但好象需要付费,另外在可户端操作起来怎么样就不清楚了,具体的你可以查询一些资料.
最好想到了将WORD封装成EXE文件,我试了一下,好象可以,我将WORD宏设成高,用生成的EXE打开后,虽然在左上脚显示控件工具箱,但已经不是设计模式了.
你同样把你的WORD设成默认的高,保存后退出,利用工具生成EXE文件,然后打开看看,如果是设计模式,取消设计模式,保存退出,再打开~~
我这测试一次成功,希望你也可以,就是不知道这样你是否能接受,其实只要不影响你其他内容,用WORD,还是封装后的EXE,对客户来说,没什么影响.
至少个人感觉利用工具封装是个不错的选择,除了解决你的问题外,还可以多的技术含量,呵呵~~~
下面是转换工具,和我做的一个TEST文件,你试一下:
转载请注明出处51数据库 » word里的设计模式在哪里