| 
    
     |  | カド さん、皆さん、こんにちは。 
 >命名の方法を知りません。
 >このようなことが出来るのであれば、教えてください。
 皆さんのご意見をコードにしてみました。
 Excel2000で確認しました。
 '=======================================================
 Sub main()
 Dim shpnm()
 shpnm = get_shp_name(Range("a1:c10"))
 If VarType(shpnm) <> vbBoolean Then
 If UBound(shpnm) > 1 Then ActiveSheet.Shapes.Range(shpnm).Group
 End If
 End Sub
 '=======================================================
 Function get_shp_name(rng As Range)
 Dim shp As Shape
 Dim shpnm()
 Dim sht As Worksheet
 Set sht = rng.Parent
 idx = 1
 With rng
 For Each shp In sht.Shapes
 If shp.Top >= .Top And shp.Top + shp.Height <= .Top + .Height _
 And shp.Left >= .Left And shp.Left + shp.Width <= .Left + .Width Then
 ReDim Preserve shpnm(1 To idx)
 shpnm(idx) = shp.Name
 idx = idx + 1
 End If
 Next
 End With
 If idx > 1 Then
 get_shp_name = shpnm()
 Else
 get_shp_name = False
 End If
 End Function
 
 上記は、A1:C10の範囲内のShapeオブジォクトをグループ化するコードです。
 後は、Typeを調べて特定のShapeオブジェクトのみグループ化するということも
 考えられますね!!それは、上記のコードに追加して下さい。
 
 |  |