- ベストアンサー
エクセルフォルダの画像を画像名で検索して貼り付ける方法
- エクセルシートのC列に商品名が入っており、フォルダにその商品名をつけた画像がまとまっています。
- B列に、その該当する画像を自動的に貼り付ける方法を教えてください。
- 画像数は約1000個くらいで、毎週増えます。エクセルに載せる数はそのうち半分くらいで、画像がない場合もあります。
- みんなの回答 (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
- ベストアンサー率30% (11/36)
#1です。 前回回答の際、「念のためVBE画面での操作手順画像を次の回答で添付します」と記しましたが連続回答することが出来ないとは知らず、意味不明な文章となってしまいました。 失礼いたしました。 実行エラーとなった「 .Name = h」部分は削除して再度実行してみてもらえますか? 今回の処理ではこの部分は不要でした。 引用プログラムだったため削除し忘れです。 重ね重ね失礼いたしました(+_+) また違うエラーが出たら補足してください。
お礼
回答ありがとうございます! これ自体はなぜかもう一度したら出来ました! しかし、このエクセルファイルをメールで他の人に送るとエラーが出て画像が表示できないようです。 新たに質問をしたので、可能であればこちらも教えて頂けませんでしょうか? http://oshiete.goo.ne.jp/qa/8367424.html よろしくお願いいたします。
補足
picopico_7さん 回答本当にありがとうございます!返事がかなり遅くなってしまい申し訳ありません。 おっしゃるとおりやってみたのですが、 Run-time error '1004': Unable to set the Name property of the Picture class というエラーが出てしまいます。 endかdebugか選べたのでDEBUGをしたところ、.Name = h のところが黄色でハイライトされました。 大変お手数ですが、解決方法をいただけますでしょうか? よろしくお願いいたします。