大家好,我们今日继续讲解VBA代码解决方案的第144讲内容:在WORD中实现图形的精确旋转。我们在写VBA代码中经常会用到图形的问题,或者说有关图形的问题在VBA代码中占据中一块内容,或许这块内容对于有的朋友用到的并不多,但如果掌握了,也不失为自己知识的一个补充。我今天讲的是在WORD中实现图形的旋转。
我们先看下面的代码:
Private Sub CommandButton1_Click()
Dim blnIsInlineShape As Boolean
If Selection.Type = wdSelectionInlineShape Then
blnIsInlineShape = True
Selection.InlineShapes(1).ConvertToShape
End If
Dim intTurn As Integer
xz = InputBox('请输入要旋转的角度值' & vbCrLf & '正数表示顺时针,负数表示逆时针。', '图形旋转', 30)
For I = 1 To Int(360 / xz) * 5
Selection.ShapeRange.IncrementRotation xz
For k = 1 To 10000000
k = k + 1
Next
Next
End Sub
代码的解析:
①If Selection.Type = wdSelectionInlineShape Then 的意思是说选中的图形是否是嵌入图形,这里的TYPE是一个枚举类型。
WdSelectionType 枚举 (Word)可以是下面的常数之一:
wdNoSelection 没有选定内容。
wdSelectionBlock 列方式选定。
wdSelectionColumn 列选择。
wdSelectionFrame 框架选择。
wdSelectionInlineShape 内嵌形状选择。
wdSelectionIP 内嵌段落选择。
wdSelectionNormal 标准的或用户定义的选择容。
wdSelectionRow 行选择。
wdSelectionShape 形状选择。
② Selection.InlineShapes(1).ConvertToShape 表示的是将嵌入式的图形转换为可以自由浮动的图形。
Expression.ConvertToShape表示的是将嵌入式图形转换为可自由浮动的图形。 Expression 参数是是必需的。 表示一个代表 'InlineShape' 对象的变量。
③ Selection.ShapeRange.IncrementRotation xz 表示图形的旋转
IncrementRotation 方法 (Word):使指定的形状绕 Z 轴旋转指定的角度。 .
语法:expression.IncrementRotation( _Increment_ )
其中:
参数expression 是必需的。 是一个代表 ShapeRange 对象的变量。
参数Increment是必需的,以度为单位。 为正值时顺时针旋转形状,为负值时逆时针旋转形状。
④ For k = 1 To 10000000
k = k + 1
Next
是一段最蠢但最好理解的延时。
下面看界面截图:
点击图形旋转:看下面的录屏:
截图:
先会提示是输入旋转的角度;
今日内容回向:
1 在WORD中如何实现图形的旋转?
2 在实现旋转的过程中,都用到了哪几个控制过程?
联系客服