実現したいこと
お世話になります。Excel2013を利用しているVBA初心者です。
シート内に挿入されている図形・画像の名称の変更をし、
すべて「画像」+C列にある数字を3桁で表示させたい
(例)D1セルの図形なら『画像001』、D2セルの図形なら『画像002』としたい
前提
・画像は全て列Dにあり、ひとつのセルに1個が原則ですが、セル内に収まっておらずはみ出している可能性もある。
(もし可能であれば一つの行に画像が重複しる場合は、どこのセルで画像が重複しているなどの警告を出したい)
・登録番号に欠番はなくすべて連続しており、1000を超えることはない
自分でどこまでできますか?
オブジェクトの列挙、名前の変更、オブジェクトのある位置のセルの取得、オブジェクトのサイズをセルに合わせる、などが必要です。
オブジェクトが選択されている(オブジェクトの名称が判明している)状態であればnameやaddress、left,topプロパティは使えると思います。列挙というのはどういった動作がわかりませんが…
今回の質問内容では上から順にオブジェクトを選択するという動作がわからず迷っています
上から順に選択する必要はありません。
何の順でもいいので順に全部選択し、それぞれ左上の座標がシート上のどこになるのかを調べればどういう名前にすればいいのかがわかります。
図形であれば次のように Shapes で列挙(全て順に調べること)できます。
https://learn.microsoft.com/ja-jp/office/vba/api/excel.shapes
オブジェクトがセルからはみ出しているケースがありうるので上から順にと考えていましたが……オブジェクトのtopが行9にあればC9の番号に、名称変更するといった感じにすれば良いのでしょうか?
はみ出さないようセルの大きさに合わせて自動的に大きさを調節する機能があります。
そんな機能があるのですね、調べてみます。
ありがとうございます
