|
▼ichinose さん:
>▼カリーニン さん:
>>逆に、私は最初、シェイプを選択したら名前ボックスにシェイプの名前が出る
>>ので、そこで判定できるかも、と考えたのですが、定義した名前の一覧に
>>シェイプの名前が出てこなかったので使えませんでした。
>これは、Shapesコレクションをグルグル回す(For Each等で)と、
>既定名(名前ボックスの名)では、検索できない という意味ですよね?
>
>既定名で運用すると、二つの名前を持ってしまいますからねえ!!
>
>Excelを起動した直後に 新規ブックの標準モジュールに
>
>Option Explicit
>Sub test()
> Dim rect As Object
> With ActiveSheet
> Set rect = .Rectangles.Add(50, 50, 50, 50)
> MsgBox .Shapes("正方形/長方形 1").Name
> Debug.Print .Shapes("正方形/長方形 1").Name
> rect.Name = "ichinose"
> MsgBox .Shapes(rect.Name).Name
> MsgBox .Shapes("正方形/長方形 1").Name
> MsgBox .Shapes("Rectangle 1").Name
> End With
> Set rect = Nothing
>End Sub
>
>
>上記のコードを実行してみると、わかるように
>新規に作成した四角形には 正方形/長方形 1 なんて名前が命名されます。
>これのVBAで参照可能な既定名は Rectangle 1 になります。
>
>この四角形の名前を ichinose に代えた後も
>正方形/長方形 1 や Rectangle 1 という既定名でもオブジェクトを取得できてしまいます。
>
>この辺りの事を考慮すると、仕様をどのようにするのか ということも結構重要になってきますね
回答ありがとございます。
いくつか投稿を頂いているので、全て試したいと思います!
またご連絡致しますので、宜しくお願い致します。
|
|