• ベストアンサー

エクセル ハイパーリンクで画像を表示

ハイパーリンクで画像を呼び出す際、クリックしてブラウザを立ち上げるのでなく、エクセルの画面上(セル内)にそのまま表示させる書式設定や関数などはありますか?ご存知でしたら教えて下さい。 <詳細> 画像入りの商品タグを自動で作成する表を作っています。 商品一覧表(シート(1))からタグを作りたいものにチェックを入れると、別シート(シート(2))にタグの体裁で情報が配置され、そのまま印刷できる…というものです(A4用紙1枚に縦型のタグが60枚程度)。 関数を使って文字情報を配置するところまでは何とかできたのですが、画像の配置のところでつまずいています。 取り急ぎ画像を直接ドラッグして配置し、1つ1つ並べ直していますが、商品数が多いのと(1万点ほど)情報の変更が頻繁にあるので、方法があれば画像も自動配置したいと思っています。 シート(1)     A列     B列     C列(画像リンク) 1 商品番号 | 棚番A1 | C:\Dcuments (略) 001.jpg 2 商品番号 | 棚番A2 | C:\Dcuments (略) 002.jpg 3 商品番号 | 棚番B1 | C:\Dcuments (略) 003.jpg    : シート(2) | ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄| ̄ ̄ |商品番号|商品番号| |‥‥‥‥|‥‥‥‥| |商品画像|商品画像|←※ |‥‥‥‥|‥‥‥‥| |棚番:A1|棚番:A2| |____|____|__ | ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄| ̄ ̄ ※=HYPERLINK(シート(1)!C1,"■")) (別名(■)のところをどうにかすればいいのでしょうか…) どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

関数ですか... 無いこともなく、[名前の定義]と組み合わせれば可能ですが、 事前に画像を読み込んでおかないといけないので『(1万点ほど)』だとおよそ実用的ではないです。 一応、http://oshiete1.goo.ne.jp/qa5092871.html こちらで紹介したサイト http://www.officetanaka.net/excel/function/tips/tips14.htmhttp://www.geocities.jp/chiquilin_site/data/050530_search.html ここなど参考になるかもしれません。 実際にはセルに画像ファイルのフルパスを入力しておいて、関数で参照し、 マクロで読み込むという処理になってしまうでしょうね。 以下Q&A参考に、セル位置等応用できれば、なんとかなるかもしれません。 『マクロでセルに入れたファイル名の画像を隣のセルに読み込む』 http://oshiete1.goo.ne.jp/qa5454724.html 『VBAを使ったエクセルでの画像複数表示』 http://oshiete1.goo.ne.jp/qa4004938.html 『社員写真帳への写真の取り込みについて質問です』 http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=29522&rev=&no=0&P=R&KLOG=191 がんばってみてください。

h041
質問者

お礼

「名前の定義」を使った画像の配置のページ、とても興味深く読ませていただきました。今回の表には適さないということですが、関数でも画像の入れ替えや検索ができると分かって大変ためになりました。 4~6番目にご紹介いただいたページは、まさに私がやりたかったことでしたので、なんとか解読して実用できるようになりたいと思います。マクロのことはまだほとんど分かっていませんが、「セルに画像ファイルのフルパスを入力しておいて、関数で参照し、マクロで読み込む」というご説明で、なんとなく全体の構成がつかめたような気がします。これをキーワードに完成までがんばってみたいと思います。 関数だけでは無理かも…?と思っても次に何を勉強すれば良いのかもよく分からなかったので、目標が明確になって本当に助かりました。 この度はご回答いただき、ありがとうございました。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 大きく外しているかもしれませんが・・・ ↓の画像の右側がSheet2になり、2行目をクリックすると Sheet1のC列のセルがアクティブになる方法です。 尚、Sheet1の行並びとSheet2の列並びが同じと言う条件です。 Sheet2のA2セルに =HYPERLINK("#sheet1!C"&COLUMN(A1),"商品画像") という数式を入れ、列方向へオートフィルでコピーします。 これで仮にSheet2のB2セルをクリックすると Sheet1のC2セルにがアクティブになります。 以上、参考になれば幸いですが、 最初に書いたように大きく外している可能性もありますので その場合は読み流してくださいね。m(__)m

h041
質問者

お礼

今回は、できればクリックせずに画像を表示させたい…と考えておりました。 ですが、とても分かりやすい説明画像まで作ってくださり、大変うれしかったです。ぜひ、別の場面で参考にさせていただきます。 ご回答いただき、ありがとうございました。

  • hornest
  • ベストアンサー率16% (2/12)
回答No.2

・C列のダブルクリックをトリガにして、マクロを組みましょう。  Worksheet_BeforeDoubleClick ・画像の挿入および体裁をマクロの自動記録に記録し内容を変えましょう。  ActiveSheet.Pictures.Insert 等 それから、解らない所を質問してもらえればと思います。

h041
質問者

お礼

すぐにお礼の返信をするべきでしたが、少しお時間をいただいてマクロの基本構文などを公開しているサイトをいくつか見てきました。マクロに触れるのは初めてでしたので、最初はご回答の内容が全く分かりませんでしたが、今では少しイメージできるようになりました(できれば次の段階の質問をさせていただきたかったのですが…。まだ無理でした)。 この週末を利用して、もう少し理解を深めたいと思います。 勉強のきっかけを下さったことを感謝します。ありがとうございました。

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

残念ながらそういった関数はありません。

h041
質問者

お礼

早速のご回答、ありがとうございました。 やはり関数だけでは無理なのですね…。 なんだかありそうな気がして以前から探していたのですが、これで諦めがつきました。ありがとうございました。