• ベストアンサー

エクセル関数

こんばんは。丸1日格闘していましたが解決できない為、質問させてください。 sheet1 エクセルのA列に1~200まで番号があります。 B列にはその名称が1~200まで記入されています。 C列にはその画像が1~200まで貼り付けてあります。 そのような状態でsheet2のA2セルに =vlookup(A1,sheet1!A1:C200,3,false) と計算式を入れてsheet2のA1に例えば「4」を入力したらsheet1のC4に貼り付けてある画像を表示させたいのですが関数で出来ますか?

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

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

#3です。 似たようなものをVBAで作ってみました。 Sheet1です。 A2:C5に 1 丘 Blue hills 2 日暮れ Sunset 3 水仙 Water lilies 4 冬 Winter と入れておきます。これらの画像が自分パソコンになければ、 自分のパソコンにある画像を指定してください。 ただし同一フォルダ内にあること。 C列は画像のファイル名で、上記では画像ファイルはJPGで統一しています。 A1は番号を入力します。 B1は=VLOOKUP(A1,$A$2:$C$5,2,FALSE) C1は=VLOOKUP(A1,$A$2:$C$5,3,FALSE) と入れます。B1,C1はなくても良いですが。 Sheet1のシートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Target.Address = "$A$1" Then f = "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\" & Range("c1") & ".jpg" ActiveSheet.Pictures.Insert(f).Select With Selection .Top = Range("d1").Top .Left = Range("d1").Left .Height = Range("d1").Height .Width = Range("d1").Width End With End If Application.ScreenUpdating = True End Sub を入れます。 f = "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\" & Range("c1") & ".jpg" の部分は、上記で出来ない場合は(別の画像でやる場合は)その画像ファイルのプロパテイを開いて、コードを変えてください。 操作 D1セルは少し大きく(広く)して置いてください。 A1に、(上記の例では)1から4までの数字を入れると、 D1セルに、A1の番号に対応した画像が現れます。 数を増やすのは理屈上簡単です。A、B,C列の内容を下に増やせばよい。 問題は上記コードを、自分の仕様(シート2に画像を出すとか) にあわせて変えられるか、という点です。質問者は関数に拘っている ように見え、VBAは未経験かもしれないので、この例は役立たないかもしれないが VBAなら出来そうという例を上げたまでです。VBAでも中級の課題と思いますし、さらにやりたいことが増えるとVBAの勉強が必要です。 難しいことをやろうとしていると言いたい。

ooc
質問者

お礼

おぉぉ! こんなに分かりやすくしかも丁寧に教えていただきましてありがとうございます。道のりは遠そうですが頑張ってみます。 何度も親切に教えていただきましてスペシャルサンクスです。

その他の回答 (4)

noname#17648
noname#17648
回答No.4

#1です > -----Original Message----- 他に方法はなさそうでしょうか? > -----Original Message----- 関数では出来ませんが、他の方法で画像を表示させることは出来ます。 というか、 「関数以外の方法で画像を表示させるしかないようです」 という書き方が正しいかと思います。

ooc
質問者

お礼

何度もありがとうございました。

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

私が重要かつ基本と思って、何度も他の回答で言っているのですが、関数は「セルの値」を計算したり、持ってくるものです。セルの値はエクセルにとって、祖先にあたり、他にセルに属したデータが付け加わって、色々あります(形式を選択して貼り付けで{貼り付け」の「値」以外など)が、それらさえも該当せず、画像はセルの値や属性ではありません(そのセルの位置にたまたま張り付いているだけ)ので、今のエクセルではできません。検索した値から、画像ファイル名が割り出せる仕組みなら簡単なVBAで隣のセルの位置に画像を表示(挿入)できるでしょう。

ooc
質問者

お礼

大変くわしい説明をありがとうございました。 VBAはほとんどやったことがありませんが、興味はありますので少しずつ勉強してみようと思います。

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

>他に方法はなさそうでしょうか? Office TANAKA  自動的に画像を切り替える http://www.officetanaka.net/excel/function/tips/tips14.htm くまぷーのエクセル道場  条件付き書式?で画像を切り替える http://www.geocities.jp/kuma_pooh1958/index4.html Chiquilin Site  画像の検索ページを作る http://www.geocities.jp/chiquilin_site/data/050530_search.html このあたりが参考になるかと思います。 でも、すっごくめんどくさそうです(苦笑)

ooc
質問者

お礼

どうもありがとうございました。 確かにめんどくさそうです^^;がチャレンジしてみます。

noname#17648
noname#17648
回答No.1

VLOOKUPで、画像は取得できません

ooc
質問者

お礼

明瞭簡潔なご回答ありがとうございました。 他に方法はなさそうでしょうか?

関連するQ&A