Shapes.AddPicture(...) メソッドを使用して Excel ワークシートに画像を挿入すると、Excel は自動的に「画像 1」、「画像 2」などの名前を付けます。
この名前は、Shapes.Item("Picture 1") のような Shapes コレクション内のこのシェイプ オブジェクトへの参照を取得するために使用できます。名前ボックスを使用して Excel で名前を変更した場合、Shape オブジェクトを参照できる 2 つの異なる名前 (またはそのうちの 1 つがキー/キャプション) があります。したがって、名前を「MyPic」に変更すると、これらのいずれかを使用して Shapes コレクション内の形状を参照できます。
Shapes.Item("Picture 1")
OR
Shapes.Item("MyPic")
名前は VBA の Shape.Name プロパティを使用してアクセスできますが、内部で変更されないように見える他の値 (MyPic) にアクセスするにはどうすればよいでしょうか?
UPDATED
私がやろうとしているのは、セルをExcelの写真にリンクすることです。セルのコメントに画像データを保管しています。シナリオは次のとおりです。
- 画像名 (外部名) を保持すると、同じワークシートに構造をコピーして貼り付けると、名前が複製され、セルは同じ構造を指します。
- 内部名を保持すると、同じ内部名が同じワークブック内の他のワークシートに存在する可能性があるため、他のワークシートにコピーして貼り付けると問題が発生します。
- IDを取得すると、そこから写真の参照を取得できなくなります
私にとって、内部名を取得することは重要です。Shape 参照がありますが、この参照から内部名を取得する方法がわかりません。