• 締切済み

エクセル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だけ選択は出来ますが、ループしないで一括で選択はできないのでしょうか?

みんなの回答

  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

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以外の図形の定数がわかります。

merlionXX
質問者

お礼

さっそくありがとうございます。 ActiveSheet.Shapes.SelectAllでは、オートシェープ(四角形や三角形、だ円、ブロック矢印、吹き出し、フローチャートなど)以外にも、画像やフォームで挿入したDropDownsやCheckBoxesやButtonsなど、貼り付けたものがみな選択されてしまうので使えないのです。 msoShapeの図形の定数の調べ方、ありがとうございました。

関連するQ&A