複数の図形を選択する
図形(オートシェイプ)を複数選択したいときは、以下のような方法があります。
Replace:=False
Select の引数 Replace を False にすることで、選択を追加していくことができます。
True にすると先に選択されていたものが解除されます。
Public Sub Replace()
ActiveSheet.Shapes(1).Select Replace:=False
ActiveSheet.Shapes("図形 1").Select False 'False だけでもOK
End Sub
For Each でループ処理に組み込めば、条件を満たす図形を複数選択することができます。
※下記にサンプルコードがあります
Range(Array())
Rangeプロパティを使って複数選択も可能です。
Array() の中に選択したい図形を指定するだけで、一気に同時選択されます。
Public Sub Range()
ActiveSheet.Shapes.Range(Array(1, 3)).Select
ActiveSheet.Shapes.Range(Array("図形 1", "図形 3")).Select
End Sub
条件を満たす図形を複数選択するサンプルコード
Public Sub ForEach()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoAutoShape Then
'図形が円のときの処理
If shp.AutoShapeType = msoShapeOval Then
shp.Select Replace:=False '図形を選択
End If
End If
Next shp
End Sub
注意点
- ループ処理以外で図形を選択する場合、図形の指定はインデックス番号でも図形名でもOKです。
- For Each を実行する前に選択していたものは自動で解除されないので、一緒に選択されます。
※どこかのセルを選択しておく等の工夫が必要です。



コメント