• ベストアンサー

Vlookup関数の引数(参照テーブル)のデータに図もしくは写真を使用することができますでしょうか?

今エクセルで行いたいことは、あるキー(例えば商品番号)を入力すると指定のセルにそのキーに対応する図もしくは写真を表示させたいのです。 一般的に表示させたいデータがセルに入力されているデータであれば、Vlookup関数を使用することにより何ら問題なく行えます。 例えば参照テーブルのA列に商品番号、B列に価格を入力しておき、商品番号をキーにして価格を検索するというものです。 これを援用してB列に商品写真を貼り付けておき、商品番号をキーにしてその写真を参照(挿入)するということができるでしょうか? Vlookup関数でなくても他の方法があれば大歓迎です。 宜しくご指導の程お願い申し上げます。

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

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

VLOOKUPはエクセルの関数です。私がOKWEBの回答で常々言っていることは、エクセルの関数は 「値」(数値や文字コード列)しか返さないと。 すると本質問の答えは、できないになります。しかし画像がビット列のファイルで、値といえなくもないとかの議論は、別にして、画像を現すファイル名は(文字列だから)返すことはできる。 そのファイル名の文字列から画像を表示する仕組みがエクセルのシートかセルに備わっておれば表示できることになる。 幸いエクセルの挿入-図-ファイルから、がある。それでやってみました。 A2:B4に(XPにサンプルで入っている画像を使ったもの) 1 sunset.jpg 2 winter.jpg 3 Blue hills.jpg 4 water lilies.jpg と入れて、 B2に関数式 =VLOOKUP(A1,$A$2:$B$10,2,FALSE) を入れる。$B$10は$B$4でよいもの。 VBEのWorksheetのChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ActiveSheet.DrawingObjects.Delete s = Cells(1, "B") Range("D3").Select ActiveSheet.Pictures.Insert( _ "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\" & s).Select Selection.ShapeRange.ScaleWidth 0.27, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 0.45, msoFalse, msoScaleFromTopLeft End If End Sub と入れて A1に1,2,3,4のどれかを入れると その画像がD4あたりに、切り替わって現れる。 まだまだ上記では実用に耐えないかもしれないが、原理的にはそこそこのところに 行き着いた感じがする。 上記VBAを改修できないと、実用にはならないが、ご参考になればと、上げてみます。

hayato8810
質問者

お礼

早速のご回答ありがとうございます。 VBEを使用する発想はありませんでした。 ご回答を参考にさせていただきますが、VBAはあまり得手ではありませんので、仲間に相談して見ます。 実用化できれば改めてご連絡申し上げます。

その他の回答 (1)

  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.1

こんにちは 私はそのような処理を行った事が無いので 全くの未経験&未検証ですが ↓のようなことでしょうか? vlookup関数でイメージデータを表示したい http://excelfactory.net/excelboard/exgeneral/excel.cgi?mode=all&namber=51286&rev=0

hayato8810
質問者

お礼

ご回答ありがとうございます。 早速ご連絡いただいたリンクを辿り検証して見ます。

専門家に質問してみよう