要想使用VBA在Word中设置自选图形的坐标,也就是自选图形的位置,那么,得使用Shapes 对象的AddShape方法。
该对象及方法的功能及含义是:在文档中添加一个“自选图形”对象,返回一个代表该“自选图形”对象的 Shape 对象,并将其添加到 Shapes 集合。
下面是其语法及参数介绍:
expression.AddShape(Type, Left, Top, Width, Height, Anchor)
expression 必需。该表达式返回一个 Shapes 对象。
Type Long 类型,必需。要返回的图形类型。可以是任何 MsoAutoShapeType 常量。
Left Single 类型,必需。“自选图形”对象左侧边缘的位置,以磅为单位。
Top Single 类型,必需。“自选图形”对象上部边缘的位置,以磅为单位。
Width Single 类型,必需。“自选图形”对象的宽度,以磅为单位。
Height Single 类型,必需。“自选图形”对象的高度,以磅为单位。
Anchor Variant 类型,可选。代表该“自选图形”所连接文本的 Range 对象。如果指定 Anchor,则锁定标记位于锁定区域第一段的起始位置。如果忽略该参数,则 Word 将自动选定锁定区域,而自选图形将相对于页面的上部和左侧边缘进行定位。
相关的示例代码如下:
代码一:
Dim myShape As Word.Shape
Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 0, 0, 100, 100, Selection.Range)
With myShape
.WrapFormat.Type = 3
.ZOrder 4
End With
代码二:
Dim IntPages As Integer
Dim i As Integer
Dim sngWidth As Single
Dim sngHeight As Single
Dim aShape As Shape
With ActiveDocument
IntPages = .ComputeStatistics(wdStatisticPages)
sngWidth = .PageSetup.PageWidth / 2 '宽度取页宽的一半
sngHeight = .PageSetup.PageHeight '高度为页高
End With
Application.ScreenUpdating = False
With Selection
Do
i = i + 1
.GoTo wdGoToPage, wdGoToAbsolute, i
With ActiveDocument
Set aShape = .Shapes.AddShape(msoShapeRectangle, 0, 0, sngWidth, sngHeight)
With aShape
.Line.Visible = msoFalse
.Fill.Transparency = 0.7
.ZOrder 4
End With
End With
Loop Until i = IntPages
End With
Application.ScreenUpdating = True