分享免费的编程资源和教程

网站首页 > 技术教程 正文

文档中图形及子图形的处理

goqiw 2024-09-10 17:44:19 技术教程 13 ℃ 0 评论

分享成果,随喜正能量】走得越远,见识越多,认识的人越多,你就越能体会到,人这一辈子,你真的在意的,同时又在意你的人,就那么几个,这几个人,就是你全部的世界。三两知己,爱人在侧,父母康健,听起来平淡无奇,但已经是中等偏上的答卷了。。

《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容第七章 “Word中的Selection对象”,第2节:文档中图形及子图形的处理

第二节 Selection 对象的属性(二)

大家好,我们继续Selection对象属性的讲解,在上一讲中我们讲解了Selection对象Characters属性、End属性、Start属性,我们这节的内容是Selection对象的ChildShapeRange 属性、ShapeRange属性、Fields属性。

1 Selection.ChildShapeRange属性

此属性返回一个ShapeRange集合, 该集合代表所选内容中包含的子图形。

语法:expression.ChildShapeRange

其中expression为一个代表Selection对象的变量。

2 Selection.ShapeRange属性

此属性返回一个ShapeRange集合, 该集合代表选定内容中的所有Shape对象。 此为只读属性。

语法:expression.ShapeRange

其中expression为一个代表Selection对象的变量。

  • 形状范围可以包含图形、形状、图片、OLE 对象、ActiveX 控件、文字对象和标注。

3 Selection.Fields属性

此属性返回一个只读的fields集合, 该集合代表选定内容中的所有域。

语法:expression. Fields

其中expression为一个代表Selection对象的变量。

4 实例:图形及子图形的处理

我们这节的实例我们来看一下图形和子图形的处理。这节中我们首先在当前文档最后插入时间及作者,利用的是Fields属性;紧接着,我们要新建一个文档,在这个文档中先添加两个矩形,并设置阴影;之后,我们添加一个画布,在画布中添加一个矩形及圆形,并用填充点填充。

我们看下面的代码:

Sub mynzA()

'在当前文档最后插入时间及作者

t = ActiveDocument.Content.End - 1

Set myRange = ActiveDocument.Range(Start:=t, End:=t)

myRange.Select

With Selection

.Collapse Direction:=wdCollapseStart

.Fields.Add Range:=Selection.Range, Type:=wdFieldDate

.Fields.Add Range:=Selection.Range, Type:=wdFieldAuthor

End With

'创建新的文档并添加图形

Dim myDoc As Document

Dim myShp As Shape

Set myDoc = Documents.Add

'添加两个矩形,并给有图形设置阴影

myDoc.Shapes.AddShape msoShapeRectangle, 350, 0, 100, 80

myDoc.Shapes.AddShape msoShapeRectangle, 350, 100, 100, 100

myDoc.Content.ShapeRange.Select

Selection.ShapeRange.Shadow.Type = msoShadow6

'添加一个画布,在画布中添加形状矩形和圆形

Set myShp = myDoc.Shapes.AddCanvas(Left:=100, Top:=100, Width:=200, Height:=200)

myShp.CanvasItems.AddShape msoShapeRectangle, Left:=0, Top:=0, Width:=100, Height:=100

myShp.CanvasItems.AddShape msoShapeOval, Left:=0, Top:=50, Width:=100, Height:=100

'选择画布中的图形,添加填充

myShp.CanvasItems.SelectAll

Selection.ChildShapeRange.Fill.Patterned msoPatternDivot

End Sub

代码截图:

代码解读:

1) t = ActiveDocument.Content.End - 1

Set myRange = ActiveDocument.Range(Start:=t, End:=t)

myRange.Select

With Selection

.Collapse Direction:=wdCollapseStart

.Fields.Add Range:=Selection.Range, Type:=wdFieldDate

.Fields.Add Range:=Selection.Range, Type:=wdFieldAuthor

End With

以上代码在当前文档最后插入时间及作者,其中t为文档的最终位置。

2) Set myDoc = Documents.Add

以上代码创建新的文档

3) myDoc.Shapes.AddShape msoShapeRectangle, 350, 0, 100, 80

myDoc.Shapes.AddShape msoShapeRectangle, 350, 100, 100, 100

myDoc.Content.ShapeRange.Select

Selection.ShapeRange.Shadow.Type = msoShadow6

以上代码添加两个矩形,并给有图形设置阴影。

4)Set myShp = myDoc.Shapes.AddCanvas(Left:=100, Top:=100, Width:=200, Height:=200)

以上代码添加一个画布。

5)myShp.CanvasItems.AddShape msoShapeRectangle, Left:=0, Top:=0, Width:=100, Height:=100

myShp.CanvasItems.AddShape msoShapeOval, Left:=0, Top:=50, Width:=100, Height:=100

以上代码在画布中添加形状矩形和圆形

6)myShp.CanvasItems.SelectAll

Selection.ChildShapeRange.Fill.Patterned msoPatternDivot

以上代码选择画布中的图形,添加填充

代码的运行效果:

今日内容回向:

1 Word中Selection对象的Selection对象的ChildShapeRange 属性、ShapeRange属性、Fields属性的意义是什么?

2 如何利用VBA添加图形及日期域?

本讲内容参考程序文件:Doc 007文档.docm

我20多年的VBA实践经验,全部浓缩在下面的各个教程及应用工具中:


分享成果,随喜正能量】孩子若是平凡之辈,那就承欢膝下;若是出类拔萃,那就展翅高飞;接受孩子的平庸,就像孩子从来没有要求父母,一定要有多么优秀一样。穷不怪父,孝不比兄,苦不责妻,气不凶子。。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表