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

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

A 回答 (2件)

VLOOKUPはエクセルの関数です。

私がOKWEBの回答で常々言っていることは、エクセルの関数は
「値」(数値や文字コード列)しか返さないと。
すると本質問の答えは、できないになります。しかし画像がビット列のファイルで、値といえなくもないとかの議論は、別にして、画像を現すファイル名は(文字列だから)返すことはできる。
そのファイル名の文字列から画像を表示する仕組みがエクセルのシートかセルに備わっておれば表示できることになる。
幸いエクセルの挿入-図-ファイルから、がある。それでやってみました。
A2:B4に(XPにサンプルで入っている画像を使ったもの)
1sunset.jpg
2winter.jpg
3Blue hills.jpg
4water 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を改修できないと、実用にはならないが、ご参考になればと、上げてみます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/08/15 20:27

こんにちは



私はそのような処理を行った事が無いので
全くの未経験&未検証ですが

↓のようなことでしょうか?
vlookup関数でイメージデータを表示したい
http://excelfactory.net/excelboard/exgeneral/exc …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/08/15 20:28

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