• ベストアンサー

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

エクセルの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/17068)
回答No.3

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

hiroaki-paris
質問者

お礼

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

  • keithin
  • ベストアンサー率66% (5278/7940)
回答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

  • エクセル2007 画像挿入

    B9のセルに品番を入力するとA9のセルに画像が自動挿入(画像サイズはA9に入るようにしたい )される様にしたいのですが、可能でしょうか? 画像はデスクトップにある画像フォルダを使いたいのですが・・・ 又、B9以外にもB10 B11 B12 B13・・・と下のセルにも同じように品番を入力すると自動で画像挿入したいです。 どなたか分かる方宜しくお願いします。

  • セルに記述したファイル名の画像を自動的に挿入する

    エクセルでデータベースを作成しております。 指定したデータを「VLOOKUP」などを使って、別のエクセルファイルに書き出そうと思っています。その際に、データをあらわす別の画像ファイル(jpg)を自動的に取り込んでくることはできるのでしょうか? 説明が下手で済みませんが、具体的には以下のとおりです セルA1に「IMG001」と入力すれば、セルA2に特定のフォルダにある「IMG001.jpg」という画像を自動で貼り付けてくれるようにしたいのです。同じようにセルB1入力したものがB2に、セルC1が・・・・といった具合です。 データの量が多いもので、少しでも手間を省きたいのです。 よろしくご教示ください。

  • エクセルVBAで、画像の挿入をしたいと思っています。

    エクセルVBAで、画像の挿入をしたいと思っています。 シート名は左から まとめ、A、B、C、まとめ(1)、A(1)、B(1)、C(1)、まとめ(2)、A(2)、B(2)、C(2) と、あるとして、任意のフォルダの中にある画像(*.jpgが9枚)を昇順でひとつずつA、B、C、A(1)、B(1)…C(2)シート(まとめ以外のシート)の指定のセルに貼付けられないかと考えています。 画像の名前は任意で、001.jpgはA、002.jpgはB、…009.jpgはC(2)と画像は昇順に、シートは左からというルールは変わらないとして、どのようにVBAを組んでいけばよいでしょうか。 どうぞご教授お願いします。

  • エクセルで行挿入した際、自動的に計算式も入力される方法を教えて下さい。

    例えば、A列は単価を入力する欄、B列には数量を入力する欄、C列には=A1*B1(1行目の場合)の計算式が入っている表があるとします。 表の途中で行挿入すると、自動的にCのセルに数式が入力される方法はありますでしょうか? 複数の人に毎月この表(実際はもっと列が多い表)に入力して貰って集計等をしているのですが、各個人で表の途中で行挿入して行を増やした際、数式がコピーされてない人がいるため、行挿入すると自動的に数式が入力される方法がないかと思っております。 エクセルのバージョンは2000又は2003、行挿入は必要なので、行挿入を禁止する事はできません。 宜しくお願いします。

  • エクセルで画像の挿入マクロについて

    エクセルのB列にJANコードが入力してあり、 (1)セル内容コピー  (2)C列にそのJANコード.emfのファイル名画像を挿入 (3)次の行に移る この作業をマクロ記録してみたところ内容が下記の様になりました。 Sub JAN() ' ' JAN Macro ' ' Keyboard Shortcut: Ctrl+Shift+Q ' Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Pictures.Insert( _ "C:\Users\user\Documents\JAN_バーコード\1234567890123.emf").Select ActiveCell.Offset(1, -1).Range("A1").Select End Sub 挿入する画像のファイル名が最初のものに固定されてしまっているのですが、 これを次のセル内容に自動で変える為にはどうすればよいでしょうか。

  • 行の挿入で数式も自動的に挿入

    C1列に=SUM(A1:B1)を入力し、オートフィルを30行目までかけました。 3行目で行の挿入をした時に 自動的にC列に数式が入力されている状態 (上の行、又は下の行のコピーを挿入) にしたいのですがどうすればよろしいでしょうか? 行をコピー  → コピーしたセルの挿入 以外の方法はあるんでしょうか? よろしくお願い致します。

  • excelで自動画像挿入

    excelで、例えば(品番)を選択して、それをクリックすると自動で画像が現れるようにしたいのですが。 可能なのでしょうか? どういう方法がありますか? 教えてください。

  • excelの自動計算について

    Excelのセルに入力された数字を自動で変換 例えばA1セルに「8」と入力した場合、自動で×10で計算して値をA1に表示する事は可能でしょうか?A列にはある物の数をカウントした数字が入るのですが、「8」の時は×10、「3」の時には×5など、数字によって×の式を変更したいのです。別の列に数式を入れたり、別の表を作成してVLOOKUPで計算したりすれば、簡単にできると思うのですが、そのような作業は無しで、できないでしょうか?ご存知のかたおられましたら教えて下さい。宜しくお願い致します。

  • コメント挿入マクロ挿入位置ずれの件

    コメント挿入マクロ挿入位置ずれの件 エクセル2007 ウインドウズ7利用 エクセルセル内の品番に対し別ファイルに保存してある同じ品番の画像をセルに挿入するマクロを組んで頂いたのですが品番を記載したセルからずれた所に画像が挿入されます。 挿入する画像が数百枚単位となりますので現在全画像を選択して移動するのも時間がかかってしまいます。品番が記載されたセルへ挿入する方法があれば教えていただけますでしょうか。 記 Sub 画像挿入() Dim 対象セル As Range For Each 対象セル In Selection If Dir("C:\画像\" & 対象セル.Value & ".jpg") <> "" Then '該当するファイルがあれば ActiveSheet.Pictures.Insert("C:\画像\" & 対象セル.Value & ".jpg").Select Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Height = 対象セル.Height Selection.ShapeRange.Width = 対象セル.Width Selection.ShapeRange.IncrementLeft 対象セル.Left Selection.ShapeRange.IncrementTop 対象セル.Top End If Next 対象セル End Sub です。宜しく御願い致します。

  • Excel 2007で、挿入した画像も並べ替えの対象にしたいです。

    Excel 2007で、挿入した画像も並べ替えの対象にしたいです。 例えば、A列からC列までを使って、Aには商品名、Bには価格、Cにはその商品の画像を配置した場合のことです。 画像を挿入すると、セルの上にのっかっているような状態で、セルとは無関係になってしまいます。 このまま商品を価格順に「並べ替え」をしても、画像はセルの中に入っていないので、画像はついてきません。 Wordの表だと、「行内」にすればセルの中に画像が入り込んでくれるのですが、同様のことはExcelでできますでしょうか? 図のプロパティで「セルに合わせて移動する」にチェックを入れても、並べ替えできませんでした。

専門家に質問してみよう