【分享成果,隨喜正能量】心生喜樂的時候,我們並沒有看到隱藏在背後的痛苦,心生寧靜的時候,那起伏不定的情緒正在趕來的路上,所有的事物都不會持久,也不會永恆,這就是無常。。
《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實踐經驗,全部濃縮在下面的各個教程及應用工具中:
【分享成果,隨喜正能量】因為生命有衰亡,才有了時間概念,如果生命是永恆的,那時間也就不存在了。。