プロが教えるわが家の防犯対策術!

商品リストを作っています。

エクセルシートのC列に商品名が入っています。(6桁の数字&アルファベット。たとえばA00123)
フォルダにその商品名をつけた画像がまとまっています。

B列に、その該当する画像を自動的に貼り付けたいのですがどうすればいいですか?
画像数は1000個くらいフォルダに入っています。毎週増えます。
エクセルに載せる数はそのうち半分くらいです。
画像がない場合もあるのでその場合は何かしらのエラーを表示させたいです。

マクロはド初心者です。切り貼りくらいしか出来ません。が、今勉強中です。

検索して下記の方法を見つけたのですが、未だ成功していません。

http://oshiete.goo.ne.jp/qa/2880877.html
こちらをALT+F11ででできた画面に張るまではよかったのですが、
実行しようとしても何も出てこず失敗しました。
(他のときは選択する名前が出てくるのですが。Subの後に入っている名前です。このリンクのだとsubがなくて名前がないため、マクロ実行できません)

http://oshiete.goo.ne.jp/qa/5890088.html
コピペして実行したのですが何もかわりませんでした。
ファイルがおいてある場所は "c:\あるフォルダ\"から "c:\picpic\"にかえました。
私のリストは商品名がB列にあるのですがそれが問題なのでしょうか。






excel2010
windows7
フォルダはマイドキュメントにあります。名前はpicpicです。



何か不足している情報がありましたら教えてください。
よろしくお願いいたします。

A 回答 (2件)

添付画像はこちらで実行した結果です。


hermosa90254さんが貼り付けておられたURLに書かれていたプログラムを一部修正したものです。
ExcelでVBE画面(Alt + F11)に下記プログラムをそのままコピペして実行してみてください。
ただし「写真の保存場所」で書かれているマイドキュメントのパスはご自身のパソコンのエクスプローラでご確認下さい。
(念のためVBE画面での操作手順画像を次の回答で添付します)

Sub macro1()
Dim p As String
Dim h As Range

'写真の保存場所
p = "C:\Users\☆☆☆\Documents\picpic\"

'現在表示されている写真は一度削除する
ActiveSheet.Pictures.Delete

'商品名が入力されている行まで繰り返す
For Each h In Range("D2:D" & Range("C1048576").End(xlUp).Row)

'写真ファイルが保存されている時
If Dir(p & h) <> "" Then
With ActiveSheet.Pictures.Insert(p & h)
.Name = h
'写真ファイル名が入力されているセルから2つ左のセルに挿入
.Top = h.Offset(0, -2).Top
.Left = h.Offset(0, -2).Left
'写真サイズの設定
.Width = h.Offset(0, 1).Width
.Height = h.Offset(0, 1).Height
End With
End If
Next
End Sub
「エクセル フォルダの画像を画像名で検索し」の回答画像1

この回答への補足

picopico_7さん

回答本当にありがとうございます!返事がかなり遅くなってしまい申し訳ありません。
おっしゃるとおりやってみたのですが、
Run-time error '1004':
Unable to set the Name property of the Picture class
というエラーが出てしまいます。
endかdebugか選べたのでDEBUGをしたところ、.Name = h のところが黄色でハイライトされました。
大変お手数ですが、解決方法をいただけますでしょうか?
よろしくお願いいたします。

補足日時:2013/11/27 16:07
    • good
    • 0

#1です。


前回回答の際、「念のためVBE画面での操作手順画像を次の回答で添付します」と記しましたが連続回答することが出来ないとは知らず、意味不明な文章となってしまいました。
失礼いたしました。

実行エラーとなった「 .Name = h」部分は削除して再度実行してみてもらえますか?
今回の処理ではこの部分は不要でした。
引用プログラムだったため削除し忘れです。
重ね重ね失礼いたしました(+_+)

また違うエラーが出たら補足してください。
    • good
    • 2
この回答へのお礼

回答ありがとうございます!
これ自体はなぜかもう一度したら出来ました!

しかし、このエクセルファイルをメールで他の人に送るとエラーが出て画像が表示できないようです。
新たに質問をしたので、可能であればこちらも教えて頂けませんでしょうか?
http://oshiete.goo.ne.jp/qa/8367424.html

よろしくお願いいたします。

お礼日時:2013/11/30 06:58

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A