- ベストアンサー
エクセルに貼り付けてある画像のセル位置
お世話になります。 WSHでエクセルを開き、使用されている画像を取得しました。 Worksheets.Item(1).Pictures.Item(1) これからTopとLeftで画像の位置を取得する事が出来たのですがその位置を基準として下にあるセルの位置を取得したいのですが可能でしょうか? そのほかにもA画像とB画像の2種類が複数コピーされて作成されていますが、それらの名前の取得も出来ますでしょうか? 最終的に出したい結果は A1 A画像 B2 A画像 D11 B画像 E4 A画像 のような感じです。 どちらか一つでもわかる方、教えてください よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
topleftcellプロパティと BottomRightCellプロパティで 角の2セルはわかりますね。 Worksheets.Item(1).Pictures.Item(1).topleftcell.address てな感じで。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() Worksheets("Sheet3").Range("A1").Activate MsgBox ActiveSheet.DrawingObjects.Count For i = 1 To ActiveSheet.DrawingObjects.Count MsgBox ActiveSheet.DrawingObjects(i).Name MsgBox ActiveSheet.DrawingObjects(i).TopLeftCell.Address MsgBox ActiveSheet.DrawingObjects(i).BottomRightCell.Address Next i End Sub 最終的に出したい結果は上記アドレスを逆表示 Picture1 $C#3 Picture2 $F#9 シート上の一部のコントロールと違って、貼りつけ図形にはLinkedObjectのような考えが無い様で、事実上の今の位置の意味しかない様に思いますが、それで良いのですか(自信なし)。
お礼
画像の方はちょっと解決策がないようですね。 >貼りつけ図形にはLinkedObjectのような考えが無い様で 全く同じ画像でも点数が増えると比例してエクセルのファイルサイズが大きくなるのでまさかとは思いましたが、やはりそうですか ただ最低限セル位置の取得が出来なければならなかったのでそちら側の回答を頂けてとても感謝しております ありがとうございました
補足
説明が下手で申し訳ありません。 画像は2種類使用されていて、それぞれ絵柄が違うだけで縦横幅はまったく同じです。 それらの画像が複数個づつ存在していて、参照した画像がどちらのものかを判定したいのです。 Nameを参照すると Picture1 Picture2 Picture3 とユニークな名前が返ってきますがそうではなく Picture1 = 画像A Picture2 = 画像B Picture3 = 画像A のように、元画像が何であったかを知りたいのです。 2種類しかないので縦横幅が違えばそれを取得してどちらだったかを判断すればよいのですが、縦横幅がまったく一緒なためにそれはできないのです。 これを踏まえての解決策、もしくはPicturesのプロパティが詳しくのったサイトなどご存知でしたら教えていただけないでしょうか?
お礼
画像の方はちょっと解決策がないようですね。 ただ最低限セル位置の取得が出来なければならなかったのでそちら側の回答を頂けてとても感謝しております ありがとうございました
補足
ありがとうございます。 topleftcell.addressにより下のセル位置を取得できました。 後は画像名の取得だけですが、もう少し締め切らずに待とうと思います。