Rotationプロパティを使うと、図形を好きな角度に傾けることができます。
Rotationプロパティの使い方
図形の角度を取得
Shapeオブジェクト(またはShapeRangeコレクション).Rotation
Shapeオブジェクト(またはShapeRangeコレクション).Rotation
角度の変更
![shape rotation4](https://sunagitsune.com/wp-content/uploads/2021/10/shape-rotation4.png)
通常操作で言う書式タブ→配置内の回転→角度指定にあたるのがRotationプロパティです。
現在の角度に関係なく、指定した角度に変更されます。
現在の角度に関係なく、指定した角度に変更されます。
![shape rotation1](https://sunagitsune.com/wp-content/uploads/2021/10/shape-rotation1.png)
こうした図形に対し、
' vba
ActiveSheet.Shapes(1).Rotation = 90
Rotationプロパティを使い、度数換算で角度を指定してやれば、
![shape rotation2](https://sunagitsune.com/wp-content/uploads/2021/10/shape-rotation2.png)
その角度分図形が傾く、というわかりやすいプロパティです。
' vba
ActiveSheet.Shapes(1).Rotation = -90
値はマイナスで指定することもできます。-90度と270度は同じ角度です。
角度の出力
' vba
Range("A1").Value = ActiveSheet.Shapes(2).Rotation
図形の角度を取得して他の図形と合わせたり、値を出力することも可能です。
![shape rotation5](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation5.png)
実行例です。
IncrementRotationメソッドの使い方
図形の角度を加算
Shapeオブジェクト(またはShapeRangeコレクション).IncrementRotation 角度
Shapeオブジェクト(またはShapeRangeコレクション).IncrementRotation 角度
![shape rotation3](https://sunagitsune.com/wp-content/uploads/2021/10/shape-rotation3.png)
ハンドルで図形を回転させる操作は、VBAではIncrementRotationメソッドにあたります。
' vba
ActiveSheet.Shapes(1).IncrementRotation 10
こちらは現在の角度に指定角度を加算していくことができます。
![vba IncrementRotation2](https://sunagitsune.com/wp-content/uploads/2021/11/vba-IncrementRotation2.gif)
Rotationでも代用できますが、ちょっとずつ回転させたい場合などはこっちのほうがシンプルな記述になります。
中心点をずらして回転
![shape rotation6](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation6.png)
ついでにちょっとテクニックを。こんな感じで図形と線を作っておき、
![shape rotation7](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation7-650x487.png)
線を書式タブの図形の枠線→枠線なしで透明にします。
![shape rotation8](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation8.png)
Ctrlを押しながら三角形をクリックして、複数選択状態にします。
![shape rotation9](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation9.png)
書式タブ→グループ化→グループ化で三角と線をグループにします。
この一連の操作もしたければマクロ化できます。
この一連の操作もしたければマクロ化できます。
![shape rotation10](https://sunagitsune.com/wp-content/uploads/2021/11/shape-rotation10.png)
図形がグループ化されました。
' vba
ちょっとずつ回す
ActiveSheet.Shapes(1).IncrementRotation 10
この状態でさっきのコードを実行すると、
![vba IncrementRotation3](https://sunagitsune.com/wp-content/uploads/2021/11/vba-IncrementRotation3.gif)
中心点を図形中心からズラした状態で回転させることが可能です。
![vba IncrementRotation5](https://sunagitsune.com/wp-content/uploads/2021/11/vba-IncrementRotation5.gif)
この場合、中心点は線と三角形を合わせた直線の中間点になります。
逆方向に同じ図形をくっつける等すれば、線の先端を中心に回転させることも可能です。
逆方向に同じ図形をくっつける等すれば、線の先端を中心に回転させることも可能です。
![](https://sunagitsune.com/wp-content/uploads/2021/05/innovation-561388_1280-160x90.jpg)
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。
図形作成・操作...
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント