- 締切済み
エクセルVBAでオートシェープのRectangleの選択
しょうもない質問ですが、不思議なので教えてください。 エクセル2000です。 ワークシート上に配置したオートシェープのTypeNameを取得してみると、線(Line)、楕円(Oval)以外は四角形も八角形も星型もみんなRectangleでした。 ところが、 ActiveSheet.Rectangles.Select としてみても、選択されるのは四角形と丸四角形のみです。 もちろん、Lines.Select や、Ovals.Select で選択できるのは、線 と 楕円 だけです。 八角形も星型もみんなTypeNameはRectangleなのに四角形と丸四角形以外のRectangleはどうして選択できないのでしょうか? Sub testRectangle() For Each o In ActiveSheet.DrawingObjects If TypeName(o) = "Rectangle" Then o.Select (False) Next End Sub とやれば、Rectangleだけ選択は出来ますが、ループしないで一括で選択はできないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fly_moon
- ベストアンサー率20% (213/1046)
Shapesオブジェクトの利用はダメなのでしょうか? Sub testRectangle() ActiveSheet.Shapes.SelectAll End Sub ですべてのオートシェイプが一括選択できるんじゃないでしょうか。 Sub testRectangle_5pointstar() Dim o As Shape For Each o In ActiveSheet.Shapes If o.AutoShapeType = 92 Then o.Select (False) Next End Sub で5点の星型のみ選択ですが、これはループしないと出来ないような気がします。オブジェクトブラウザで"msoShape*"を検索したら92以外の図形の定数がわかります。
お礼
さっそくありがとうございます。 ActiveSheet.Shapes.SelectAllでは、オートシェープ(四角形や三角形、だ円、ブロック矢印、吹き出し、フローチャートなど)以外にも、画像やフォームで挿入したDropDownsやCheckBoxesやButtonsなど、貼り付けたものがみな選択されてしまうので使えないのです。 msoShapeの図形の定数の調べ方、ありがとうございました。