「VBA 図形 回転」
「vba 図形の回転 Rotation」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へ時折アクセスがあります。
どのアプリケーションか不明ですが、VBAで図形を回転させるにはどのようなコードを書けばいいのか探していた方による検索です。
「vba 画像回転」
といった検索でのアクセスもあります。
図形や画像に限らず、シート上の(セルではない)操作対象は、ShapeオブジェクトやShapeRangeオブジェクトを使ってVBAから操作できます。
Shapeを回転するサンプル
以下のSubプロシージャを実行すると、アクティブシート1つ目の図形や画像が、右回りに90度回転します。
ActiveSheet.Shapes(1).Rotation = 90
End Sub
ShapeオブジェクトやShapeRangeオブジェクトに用意されているRotationプロパティを使うと、Shapeを回転できます。
Rotationプロパティにマイナスの値を指定すれば、左回りで回転します。
Rotationは、基準に対して何度回転させるかを設定・取得するためのプロパティで、一度90度の回転が行われると、上記のSubプロシージャを何度実行しても、もう回転は行われません。
Shapeを何度も回転させるサンプル
一方、IcrementRotationメソッドを使った以下のSubプロシージャを実行すると、実行するたびにShapeが45度回転します。
ActiveSheet.Shapes(1).IncrementRotation 45
End Sub
Rotationプロパティは基準に対しする回転角度を指定したのに対し、IncrementRotationメソッドを使うと、名前のとおり回転角度をインクリメントできます。
ちなみに、Excel VBAには「Increment〇〇」といった名前のメソッドが複数あり一覧にしていますので、よろしければご確認ください。
最終更新日時:2021-12-17 10:59
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Excel VBAで図形・画像を回転する-Rotationプロパティ・IncrementRotationメソッド