|
▼岳 さん:
>初期の目的達成しました。
良かったですね^ ^
Sub 練習4()が今ひとつやりたい事がわからなかったのですが
Sub おまけ()
'"Oval x"のxが連番になっている場合。
Dim i As Long
For i = 1 To 5
With ActiveSheet.Shapes("Oval " & i)
.Left = .TopLeftCell.Left + 10
.Top = .TopLeftCell.Top + (.TopLeftCell.Height - .Height) / 2
End With
Next i
End Sub
こんな事ですか?
また、Ovalの名前連番をつけ直したい時などは
Sub おまけ2()
Dim i As Long
For i = 1 To ActiveSheet.Ovals.Count
ActiveSheet.Ovals(i).Name = "Oval " & i
Next i
End Sub
...などで。
ついでにShape位置の微調整だけなら名前やIndexを取らなくてもできるので
Sub おまけ3()
Dim s As Oval
For Each s In ActiveSheet.Ovals
With s.TopLeftCell
s.Left = .Left + 10
s.Top = .Top + (.Height - s.Height) / 2
End With
Next s
End Sub
...など。
おまけ2と3で使った Oval は隠しオブジェクトです。
(以前のバージョンとの互換性を保持するためにあるものだそうです)
なので混乱するかもしれませんが、参考まで。
(ヘルプで確認しておいてください)
|
|