プロが教える店舗&オフィスのセキュリティ対策術

いつも参考にさせて頂いております。
リンク先の画像貼付まではうまく行くのですが
貼り付けた画像のセレクト方法を教えてください。
VBAコード
Range("a1").Select
Sheets("sheet2").Select
Sheets("sheet1").Pictures.Insert Cells(2, 2)
Sheets("sheet1").select

質問内容
シート1のA1に貼り付けられた画像を選択したいのですが・・・?
ActiveSheet.Shapes("Picture 10").Select
              ↑
このコードでは画像のナンバーが変わるとエラーとなってしまいます。
どうぞ宜しくお願いいたします。

A 回答 (3件)

>このコードでは画像のナンバーが変わるとエラーとなってしまいます。



A1セルの画像にこだわるのならこれまでの回答で示されたとおりと思いますが、画像ナンバーが変更になるためのエラー回避なら
ActiveSheet.Shapes("Picture 10").Select
のかわりに、
ActiveSheet.drawingObject.Select
で選択してはどうでしょうか。
ただし、ほかにオブジェクトがある場合はそれも含まれてしまいますので注意が必要です。
    • good
    • 0

エクセルのシートに貼り付けた画像は


確かにSheets("sheet1").Pictures.Insert Cells(2, 2)
で、B2のTop,Leftに表示されますが、セルB2の属性として登録されるようなもので無いようです。通り掛かりの雨宿りの人みたいなもので、その家のファミリの人のようなものではない。
Range("B").InsPicSource(架空)のようなプロパティが使えるように、画像ファイル名をセル属性として登録させてくれればよいが、そういう考えは採られていない。
#1のご回答を少し変えて
Sub test02()
Dim pict As Picture
For Each pict In ActiveSheet.Pictures
If pict.TopLeftCell.Address = "$G$5" Then
MsgBox pict.Name
End If
Next pict
End Sub
を実行すると、初めはピクチャ名が(私の場合)「Picture 8」と表示されました。
しかし画像の位置を動かすと、MsgBoxで表示がありません。
ーー
ですからある行の情報として、画像ファイル名を文字列で持ち、
画像は
strJpg=cells(i,"G")
Pictures.Insert(strjpg).Select
のようにして、ファイル名がほしいときは、I列を検索し、対応するG列を見るということで解決するのはどうでしょう。
そしてセルの高さでは画像ファイルの表示は無理(小さくなりすぎる)だと思うから、クリックしたら、その行分だけの画像を表示することにする。前の表示分を消去するすることを考える必要もあると思う。
    • good
    • 0
この回答へのお礼

非常に細かな説明ありがとうございます。
初心者な者ですのでがんばって解読して行きたいとおもいます。

お礼日時:2007/07/18 19:29

For Each ~ Nextで条件に合致するものを探す方法ではいかがでしょうか



Sub Macro1()
Dim pict As Picture
 For Each pict In ActiveSheet.Pictures
  If pict.TopLeftCell.Address = "$A$1" Then
   pict.Select
  End If
 Next pict
End Sub
    • good
    • 0
この回答へのお礼

早速の回答
ありがとうございます。

お礼日時:2007/07/18 17:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!