Document.ShapeオブジェクトのNameプロパティとは何なのか
ちょっと意味がわからない現象に気づいたので、記しておく。
二つのテキストボックス
WordのDocumentに二つテキストボックスを設置してみる。

こんな感じ。
んで、次のようなコードを実行してみる。
リスト1 標準モジュール
Public Sub test()
Dim shp As Word.Shape
For Each shp In ActiveDocument.Shapes
Debug.Print shp.Name
Next
End Sub
ActiveDocumentにあるShapesコレクション(今回の場合だとテキストボックス二つのこと。)の要素であるShapeオブジェクト(つまりは、二つのテキストボックスそれぞれ)のNameプロパティの値をイミディエイト・ウインドウに出力するだけの簡単なコード。
さて、このコードの実行結果はどうなるか。

こうなるんである。
なぜか、どちらも「テキスト ボックス 2」。なんでやねん。
インデックスで指定してみる
イミディエイト・ウインドウに
ActiveDocument.Shapes(1).Select
と打ち込んで[Enter]してみる。すると、

こうなる。納得の結果。
次に、同じようにイミディエイト・ウインドウに
ActiveDocument.Shapes(2).Select
と打ち込んで[Enter]してみる。

こうなる。これまた至極当然の結果。
では、
ActiveDocument.Shapes("テキスト ボックス 2").Select
とイミディエイト・ウインドウに打ち込んで[Enter]するとどうなるか。

こうなるのである。
???
今度は、イミディエイト・ウインドウに
ActiveDocument.Shapes("テキスト ボックス 1").Select
と入力して[Enter]。
これはさすがに実行時エラーになると思った。しかし、

なぜかエラーが出ずに、さっきと全く同じ結果になった。
おわりに
二つ目のテキストボックスは、一つ目のテキストボックスをコピーしたものなので、同じ名前になってしまったのだろうか? つまり、
- 一つ目のテキストボックスを挿入する。名前は「テキスト ボックス 1」。
- 一つ目のテキストボックスをコピーして二つ目のテキストボックスが生まれる。
- 二つ目のテキストボックスに名前「テキスト ボックス 2」が付与される。
- しかし、両者は同じものなので、一つ目のテキストボックスの名前も見かけ上「テキスト ボックス 2」になってしまう。
- ただし、元の名前「テキスト ボックス 1」は完全に消滅したわけではない。
こんなわけのわからないことになっているのだろうか???
わからんなあ。