| 
    
     |  | ▼岳 さん: まずは、For Each...Next ステートメントなどの基本構文は理解されてますか?
 
 Sub sample2()
 Dim r As Range
 
 For Each r In Range("E20:E24")
 Debug.Print r.Top, r.Height, r.Left
 Next r
 End Sub
 
 Sub sample3()
 Dim i As Long
 
 For i = 1 To 5
 With Cells(i + 19, 5)
 Debug.Print .Top, .Height, .Left
 End With
 Next i
 End Sub
 
 このLoop処理内で、既存のShapeを移動させるか、新たに追加するか。
 既存のShapeを移動させる場合は、そのShapeの指定をどうするか。
 インデックス(順番)で指定するのか、名前+数値の変数で指定するのか。
 
 Sub sample4()
 Dim s As Shape
 
 For Each s In ActiveSheet.Shapes
 Debug.Print s.Name, s.Top, s.Height, s.Left
 Next s
 End Sub
 
 
 または、既に大まかに配置したShepeの微調整なら、セル範囲を指定せずに、
 ShepeのTopLeftCell プロパティでShape自身の左上セルを取得して
 そのセルの位置情報を元にShapeの位置を微調整する方法もあります。
 
 
 |  |