図形(Shape)
シート上の図形やオブジェクトの種類を調べる、ShapeオブジェクトのTypeプロパティを解説します。シェイプ.Typeで取得できる数値と対応する定数を調べることで、Shapeがどの種類化を調べることができます。
Excel2024からActiveXコントロールが使用できなくなり、設置したマクロ(イベント)も実行できなくなります。この問題に対応するにあたり、アクティブシートの全ActiveXボタンを一括で置き換えるマクロを紹介します。
Excel2024からActiveXコントロールが使用できなくなるにあたり、指定の図形がActiveXコントロールか判定する方法と、ブック内のすべてのActiveXコントロールを取得する方法をそれぞれ解説します。
図形内テキストが不要な位置で改行されてしまう問題は「テキストを図形からはみ出して表示する」「図形内でテキストを折り返す」の設定である程度抑えることができます。これを一括実行するマクロを紹介します。
図形内テキストの改行を制御するとき「テキストを図形からはみ出して表示する」をチェックし、「図形内でテキストを折り返す」のチェックを外す方法が便利です。これをVBAから設定する方法を解説します。
Shapeの位置がセル範囲内にあるかどうかを判定して、その範囲内のShapeを処理する方法を解説します。TopLeftCell/BottomRightCellでShapeを含む最小のセル範囲を取得し、それとセル範囲のIntersectが一致するかを判定して処理を行います。
すべての図形オブジェクト(Shape)を選択するマクロを紹介します。すべての図形を削除したり、一括で移動したりするときに便利なマクロですね。この処理には専用のメソッド「Shapes.SelectAll」が用意されているため、コードはとても簡単です。
すべての図形オブジェクトを一括で削除するコードを紹介します。すべて削除したい場合はActiveSheet.DrawingObjects.Deleteで簡単に実行できます。グラフだけを残すような場合は、ForEachでひとつずつShape.Typeを判定して削除します。
For Eachで全図形を処理したとき変な動きをする、Shapes.Countを数えるとなぜか1個多い、入力規則の▼が消えてリストから選べない、あたりにお困りの方は、Shapesがドロップダウンリストの▼を含む罠に落ちていないかご確認ください。