• ベストアンサー

エクセルで画像の自動挿入は可能でしょうか?

エクセルのVLOOKUPで画像を数式で自動挿入は可能でしょうか? 例えば A1のセルに品番111を入力して A2にC:\Users\X\Desktop\画像\A\111.jpgの画像を自動的に挿入する事は可能でしょうか? もし可能ならばどの様な数式になりますでしょうか? 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.2

こんにちは、だれか親切な人です。 マクロなしだと、ANo.1の通り、別シートに取り込んだ画像しか使えないので マクロを使えっても良いなら、こんなのはいかがでしょうか? ◆せつめい 関数に画像URLを渡すと、対象シェイプの画像&サイズを変更します。 画像は、jpg/gif/pgn/bmpとか色々いける…はず。 "img_"+関数が入ってるセル(例:img_A2)というシェイプ名を探します。 お好みでカスタマイズしてね! ◆使いかた A1: 111 A2: =apChgimg("C:\Users\X\Desktop\画像\A\"&A1&.jpg") 同じシート上に四角シェイプを配置。 図形名(デフォルトでは"四角形 1"とか)を、"img_A2"に変更する。 ' 画像を変更する関数 Function apChgimg(url$)  Dim shapename$, s  apChgimg = ""  ' シェイプ名は、img_関数の入ってるセル(例:img_A2)  shapename = "img_" & Application.ThisCell.Address(False, False, xlA1)  Set s = Application.ThisCell.Parent.Shapes(shapename)  s.Fill.UserPicture url  ' サイズ適用@不要なら以下削除  Dim p  Set p = LoadPicture(url)  s.Height = p.Height * 72 / 2540 '高さ(pt)  s.Width = p.Width * 72 / 2540 '幅 (pt) End Function

hiroaki-paris
質問者

お礼

ありがとうございます。 うまく処理できました!!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>可能ならばどの様な数式になりますでしょうか エクセルの関数の本質(現状での制約)を判って無い人が、こういう画像を扱うなんて早すぎる。 エクセル関数では、セルの値を、関数の引数で指定されたデータを処理(加工)してセルの値を返すものです。 そのセルの値に画像のイメージはありません。 同じくシートやセルの削除なども関数では出来ません。 シートの上に出ている画像は見たことがあるだろうが、それはセルの値ではなく、「シートの上に浮かんでいる」だけです。 かろうじてシート上のあるセルの位置に、画像をつなぎとめる方法がVBAで提供されており、画面上で絶対的な数値で位置を指定しなくても済む途があるというだけの話です。 ーー ですから、商品名・商品コードーー>関連付けた(普通はその商品画像だろう)のあり場所とファイル名(の文字列)はVLOOKUP関数で検索して持ってこれる。 しかし商品名ーフルパスのファイル名の組み合わせのデータは前もってシート上に作っておく必要がある。 ーー このあとはVBAが必要です。(田中亨先生の解説は、工夫して、たまたまVBAを使わずできるという方法を紹介されたものです) その後A1セルの値(商品コード)が変わる等の(イベント)をきっかけにして、検索したフルパスの画像を表示することが出来る。 これはマクロの記録で挿入ー図ー画像ファイル指定で出るコードが骨格になる。 質問者は、イベントというのも経験したり勉強しているのかな。 ーー あとシート上に表示位置や、画像の大きさを整えるコードなども、マクロの記録でわかる。 ーー セル位置との関連付けはRange("C1").top のような指定で、上辺をそろえる。左辺っは、.Leftを使って同じ。 ーー 一般にエクセルでは関数で出来ることは限られているし、式が長く複雑になる場合がほとんど。今後の勉強でこのことを実感し、VBAやそれ以上を勉強するか、あきらめるか切り分けてください。長期間VBAの勉強をすることが良いことかどうか。 世の中には勉強すべきことが沢山あると思うので(特に学生新社会人は)。

hiroaki-paris
質問者

お礼

ありがとうございます 回答頂いた中から マクロを使って意図する事ができました、 今後も自分で調べてわからない点は 質問していこうと思います。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ファイルに保存されている画像を関数で呼び出して表示する,といった関数は全く一つもありません。 正直マクロを使った方が遙かに簡単なので,だれか親切な人がマクロを書いてくれたら,それをうまうまといただいてしまった方がお薦めです。 頑張って自分でやってみたいのでしたら,次のような段取りになります。 基本の参考資料: http://officetanaka.net/excel/function/tips/tips14.htm まず一度ご自分のヤリタイ事を離れて資料の手順のその通りに実施してみて,完全に資料の通りに実現できるよう練習してください。 ここできちんとマスターしておくべき事は,次の4点です 0.画像は事前に別シート上に挿入して並べておくこと 1.図を置いたセル範囲に名前を定義すること 2.画像を切り替えるシクミの名前を定義すること 3.図のリンク貼り付けをすること 4.表示領域の式を書き換えること 実際の手順: ご紹介したURLの資料ではC12セルに「ビール」もしくは「ワイン」を入力規則によって記入する段取りになっていますが,代わりにC12セルにVLOOKUP関数を入れて「ビール」もしくは「ワイン」を品番から計算するよう仕込みます。 E列に品番 F列にビールもしくはワインと記入して備えてあるとすると B12セルに 111 と品番を記入するとして C12セルに =IF(COUNTIF(E:E,B2),VLOOKUP(B12,E:F,2,FALSE),"") のように仕込んでやれば該当する画像が差し替わって表示されます。

hiroaki-paris
質問者

お礼

早速の回答 ありがとうございます。 上手く出来ました。 マクロを使わせて頂きました。

関連するQ&A

専門家に質問してみよう