|
▼岳 さん:
まずは、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の位置を微調整する方法もあります。
|
|