対象の図形の回転角度を設定します。図形は設定した角度で、図形の中心を軸に時計周りに回転します。反時計回りに回転させたい場合には、マイナスの値を設定してください。当然の話ですが、反時計回りの30度と時計回りの330度は同じ回転角度を示します。
●詳細●
構文 Object.Rotation 設定/取得
設定項目 内容
Object Shape、ShapeRangeコレクションオブジェクト [省略不可]
次のサンプル1はセルB1の左上端からC1の左上端に矢印を12本作成します。それぞれの回転角を30度ずつ増加させていき、12本目では360度、すなわち0度になります。
●サンプル●
Sub RotationSamp1()
Dim i As Single
For i = 1 To 12 '---12回処理を繰り返す
With ActiveSheet.Shapes.AddLine _
(BeginX:=Range("B4").Left, BeginY:=Range("B4").Top, _
EndX:=Range("C4").Left, EndY:=Range("C4").Top)
'---B4左上端からC4左上端に直線を引き、その直線に対して
.Line.EndArrowheadStyle = msoArrowheadTriangle
.Line.EndArrowheadLength = msoArrowheadLengthMedium
.Line.EndArrowheadWidth = msoArrowheadWidthMedium
'---終端の形状を矢印に設定します
.Rotation = i * 30!
'---ループ回数に応じて、角度を30度づつ変化させる
End With
Next i
End Sub
●ポイント●
Rotationプロパティで設定するには、元の図形に対しての絶対的な回転角度です。
したがって、すでに30度回転している図形のRotationプロパティに再度30を指定しても、変化は起こりません。現在表示されている状態からさらに何度か回転させたい場合には、IncrementRotationメソッドを使用します。
次のサンプル2はアクティブシートの1つ目の図形を反時計回りに30度ずつ、12回転させます。それぞれの回転角度におけるRotationプロパティの値を確認して下さい。
●サンプル2●
Sub RotationSamp2()
Dim i As Long
For i = 1 To 12 '---12回処理を繰り返す
With ActiveSheet.Shapes(1)
.IncrementRotation -30! '---反時計回りに30度回転させる
DoEvents '---再描画する
MsgBox "現在の回転角度は" & .Rotation & "です"
End With
Next i
End Sub