【分享成果,随喜正能量】心生喜乐的时候,我们并没有看到隐藏在背后的痛苦,心生宁静的时候,那起伏不定的情绪正在赶来的路上,所有的事物都不会持久,也不会永恒,这就是无常。。
《VBA之Word应用》(10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容为第九章之第6节:VBA在文档中添加图形及隐藏图形
第六节 Shape对象的属性(三)
大家好,我们这节继续Shape对象的属性讲解,上一讲给大家讲解Shape对象的Name属性,Shadow属性和TextFrame属性。这节给大家介绍Shape对象的TextEffect属性,Visible属性和Type属性。
1 Shape.TextEffect属性
该属性返回一个TextEffectFormat对象, 该对象包含指定形状的文本效果格式设置属性。 此为只读属性。
语法:expression.TextEffect
其中expression 是必须的,代表一个Shape对象的变量。
- 此属性适用于代表艺术字的Shape对象。
2 Shape.Visible属性
该属性指定的对象或应用的格式,是可见的则返回true 。
语法:expression.Visible
其中expression 是必须的,代表一个Shape对象的变量。
3 Shape.Type 属性
该属性返回嵌入式图形的类型。只读的MsoShapeType。
- MsoShapeType不同于MsoAutoShapeType两者的枚举值大家可以仔细对照,MsoAutoShapeType是MsoShapeType的类型之一
语法:expression.Type
其中expression 是必须的,代表一个Shape对象的变量.
MsoShapeType 枚举值:
1) mso3DModel 30 3d 模型
2) msoAutoShape 1 AutoShape
3) msoCallout 2 标注
4) msoCanvas 20 画布
5) msoChart 3 图表
6) msoComment 4 批注
7) msoContentApp 27 内容 Office 加载项
8) msoDiagram 21 规划
9) msoEmbeddedOLEObject 7 嵌入式 OLE 对象
10) msoFormControl 8 表单控件
11) msoFreeform 5 任意多边形
12) msoGraphic 28 图形
13) msoGroup 6 Group
14) msoIgxGraphic 24 SmartArt 图形
15) msoInk 22 Ink
16) msoInkComment 23 Ink comment
17) msoLine 9 Line
18) msoLinked3DModel 31 Linked 3D model
19) msoLinkedGraphic 29 链接的图形
20) msoLinkedOLEObject 10 链接 OLE 对象
21) msoLinkedPicture 11 Linked picture
22) msoMedia 16 媒体
23) msoOLEControlObject 12 OLE 控件对象
24) msoPicture 13 图片
25) msoPlaceholder 14 占位符
26) msoScriptAnchor 18 脚本定位标记。
27) msoShapeTypeMixed -2 混和形状类型
28) msoTable 19 Table
29) msoTextBox 17 文本框
30) msoTextEffect 15 文本效果
31) msoWebVideo 26 Web 视频
4 实例:添加图形并有选择的隐藏
这讲的实例中我们将在当前文档中添加些内容,首先添加一块画布,在画布上添加形状圆形;然后再添加些形状。
最后我们用Shape.Type 属性和AutoShapeType属性进行判断,对图形进行有选择的隐藏。我们看代码:
Sub mynzE()
Set myDoc = ActiveDocument
'在当前文档中添加画布
Set myCanvas = myDoc.Shapes.AddCanvas(Left:=10, Top:=20, Width:=150, Height:=400)
'画布中添加形状
myCanvas.CanvasItems.AddShape Type:=msoShapeOval, Top:=25, Left:=25, Width:=150, Height:=150
'当前文档中添加几个自动图形
With myDoc
.Shapes.AddShape msoShapeBalloon, 100, 70, 150, 60
.Shapes.AddShape msoShapeRectangle, 200, 80, 150, 60
.Shapes.AddShape msoShapeCan, 300, 90, 150, 60
End With
For Each myShp In myDoc.Shapes
'隐藏矩形
If myShp.AutoShapeType = msoShapeRectangle Then
'myShp.Visible = True
myShp.Visible = False
End If
'隐藏画布及上面的形状
If myShp.Type = msoCanvas Then
'myShp.Visible = True
myShp.Visible = False
End If
Next
End Sub
代码截图:
代码解读:(略)
代码的运行效果:
我们在代码的中间设置断点,进行两次测试,一是隐藏前的截图,一是隐藏后的截图:
今日内容回向:
1 Word中Shape对象的TextEffect属性,Shadow属性和Type属性的意义是什么?
2 如何利用VBA在当前文档中添加图形及文字,并设置阴影的填充?
本讲内容参考程序文件:Doc 009文档.docm
我20多年的VBA实践经验,全部浓缩在下面的各个教程及应用工具中:
【分享成果,随喜正能量】因为生命有衰亡,才有了时间概念,如果生命是永恒的,那时间也就不存在了。。