dポイントプレゼントキャンペーン実施中!

表題の通り、
ある条件の元、エクセルのシートに挿入した画像の入れ替えが発生するのですが、そのようなマクロを組んだこともなく、
どこから手をつけていいのか分かりません。

シート上に貼り付けただけの画像の差し替えなどはできるのでしょうか?ご教授頂けると助かります。
よろしくお願い致します。

A 回答 (3件)

http://www.moug.net/faq/viewtopic.php?t=39446
に格好の解説が有るのでは。
ーー
別にイメージ=喩えの話をしてみる。
写真は挿入とは言うが、シートに置かせてもらって、浮いている存在のように思う。その写真の位置は、Top,Lehtの位置を指定できて、別途シートのセルのTop,Leftが捉えられるから、それと関連付けて、繋ぎ止めておく場所はセルに関連付けられるようなイメージです。セルと言う家の門の前に写真を置かせてもらうイメージ。
しかし決して家の中に入りこむ、と喩えられる、セルの属性たる、値やコメントや数式などとは異質の物です。山田さんの家の前においてある写真も、山田さんの家の写真を取り除けと言うわけには行かず、別途何番の写真を取り除けという指示になる。
ーー
2002,2003では
マクロの記録は
Sub Macroi()
ActiveSheet.Pictures.Insert( _
"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Sunset.jpg" _
).Select
End Sub
となる。これが2007で動かないかやってみてください。
ーーー
シートに2つの写真を貼り付けると
Sub test01()
Dim shp As Object
For Each shp In ActiveSheet.Shapes
MsgBox shp.Name
Next
End Sub
を実行すると、Picture 1、Picture 2と返る。これが写真のオブジェクトの名前だ。
これで、Picture 2を削除するのは
Sub test02()
ActiveSheet.Shapes(2).Delete
End Sub
名前で指定するなら
Sub test03()
ActiveSheet.Shapes("Picture 2").Delete
End Sub
ーー
上記から、写真以外のオブジェクトがシートに張り付いてないとして
セル番地(Top,Leftで座標的な位置指定に使う)ーPicture番号(オブk\ジェクトの名前)ー写真ファイル名ー内容(何の写真か)
の対応関係を管理しないと行けなくなると思う。
靴の何番の写真を抹消ー>Picture番号(オブジェクト名)ー>上記コードで抹消となり、入れ替える商品の写真については、新たに上記の4要素を管理する必要が出て来る。挿入すると、Picture番号は変わるので厄介だ。
以上2007でもやってみてください。並みのVBAの経験では難しいと思うな。
ACCESSのテーブルにも商品コードなどと対応して、写真を持てる仕組みがあるので、ACCESSの解説書ででも、そちらも勉強してみてください。
    • good
    • 0

エクセルのバージョンにもよるかも知れませんが、Excel2007では、


画像ファイルの削除、挿入は、マクロとして記録出来ないようです。
(設定などで変更出来るかも知れませんが、基本的に、すぐにマクロを組んじゃう方なので、以下のようなマクロで対応できます)

# このマクロから派生させて、もっと良いものは作れると思います。

Sub 差し替え()
' シート内にある画像をすべて削除します。
Dim sel As Shape
For Each sel In ActiveSheet.Shapes
If sel.Type = msoPicture Then
sel.Delete
End If
Next
' ファイル名で示される画像を挿入します。
ActiveSheet.Pictures.Insert("ファイル名")
End Sub

このマクロでは、シート内にあるすべての画像を削除してから
指定された画像を挿入する形になります。
上記のselで、sel.AlternativeTextやsel.Nameを使うと、
特定の画像のみを削除することも可能です。
    • good
    • 0

>どこから手をつけていいのか分かりません。



マクロ記録をとることから始て見ましょう
    • good
    • 0

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