質問するログイン新規登録
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

557閲覧

エクセルVBAでの図形の名称変更

sky__

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2023/02/08 06:27

0

1

実現したいこと

お世話になります。Excel2013を利用しているVBA初心者です。

シート内に挿入されている図形・画像の名称の変更をし、
すべて「画像」+C列にある数字を3桁で表示させたい
(例)D1セルの図形なら『画像001』、D2セルの図形なら『画像002』としたい
イメージ説明

前提

・画像は全て列Dにあり、ひとつのセルに1個が原則ですが、セル内に収まっておらずはみ出している可能性もある。
(もし可能であれば一つの行に画像が重複しる場合は、どこのセルで画像が重複しているなどの警告を出したい)
・登録番号に欠番はなくすべて連続しており、1000を超えることはない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2023/02/08 10:33

自分でどこまでできますか? オブジェクトの列挙、名前の変更、オブジェクトのある位置のセルの取得、オブジェクトのサイズをセルに合わせる、などが必要です。
sky__

2023/02/08 14:08

オブジェクトが選択されている(オブジェクトの名称が判明している)状態であればnameやaddress、left,topプロパティは使えると思います。列挙というのはどういった動作がわかりませんが… 今回の質問内容では上から順にオブジェクトを選択するという動作がわからず迷っています
Zuishin

2023/02/08 14:17

上から順に選択する必要はありません。 何の順でもいいので順に全部選択し、それぞれ左上の座標がシート上のどこになるのかを調べればどういう名前にすればいいのかがわかります。
sky__

2023/02/08 14:34

オブジェクトがセルからはみ出しているケースがありうるので上から順にと考えていましたが……オブジェクトのtopが行9にあればC9の番号に、名称変更するといった感じにすれば良いのでしょうか?
Zuishin

2023/02/08 15:49

はみ出さないようセルの大きさに合わせて自動的に大きさを調節する機能があります。
sky__

2023/02/09 22:15

そんな機能があるのですね、調べてみます。 ありがとうございます
guest

回答1

0

こういう感じでやってみてはどうでしょうか

Sub test() Dim wb As Workbook Dim shp As Excel.Shape Set wb = ThisWorkbook For Each shp In wb.Worksheets("Sheet1").Shapes shp.Name = Format(Cells(shp.TopLeftCell.Row, "C").Value, "画像000") If shp.TopLeftCell.Address <> shp.BottomRightCell.Address Then Cells(shp.TopLeftCell.Row, "E").Value = "TopLeftとBottomRightのセルが違います。" Next shp End Sub

投稿2023/02/09 04:04

bebebe_

総合スコア520

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sky__

2023/02/09 22:14

左上と右下のセルが一致しているか確認すればよかったのですか ありがとうございます。
bebebe_

2023/02/10 00:11

ただ図形を回転して配置している場合はうまく位置を取得しないかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問