『画像ファイルを開かずに数字入力で画像表示する方法』(シロ)
エクセルで数字を入力すると画像が表示される数式、index関数とmatch関数の組合せがあります。
この数式の場合、画像のファイルが開いていれば、数字入力すると画像が表示できますが、画像のファイルを開かず、数字入力して画像が表示される方法は、ありますでしょうか。
< 使用 Excel:Excel2019、使用 OS:unknown >
結論から言うと、現在の仕様が不明なため回答不可能です
そもそも、Excelの関数で画像を直接表示することはできません 実際には、セル参照・図のリンク・カメラ機能などを介して 「結果として画像が切り替わっている」だけです
また、「画像のファイル」という表現が曖昧です 通常この表現からは jpg / png などの画像ファイルを指すと解釈されますが、 それらのファイルを画像ビューア等で開いているかどうかが、 Excel関数の結果に影響することは仕様上あり得ません。
もし挙動が変わるのであれば、 それは「画像を含む別のExcelブック」を開閉している可能性が高く、 画像ファイルそのものとは無関係です。
以上より、前提条件が整理されていない現状では 「よくわからない」という結論になります (Asa) 2025/12/25(木) 22:44:43
これだけ回答しても不親切かと思いますので、まずするべきことを挙げます 1. 数式をコピペで具体的に明示すること 2 どのような仕組みで画像が表示されているかを具体的に明示すること 3. 2が不明な場合、スクリーンショットなどで状況確認を依頼すること 4. 「画像のファイル」の拡張子及び仕様を2,3同様に明示すること
これらを実施していただければ、具体的な回答が可能かと思います
(Asa) 2025/12/25(木) 22:52:32
(シロ) 2025/12/25(木) 23:23:53
引き続き要件が曖昧すぎるのですが、、、、
「別ブックの名前付き範囲を参照している」という話ですか? もしくは拡張子はxlsmですか?
前者の場合、[別のブック.xlsx]Sheet1!画像の範囲 のような記述のはずですが 貴方の回答からは、そのような参照であることが確認できません
もしくは、何かしらのVBAの処理が後ろで走っている可能性はありませんか? これが後者のケースです
私の言っている、「具体的に明示してください」という主旨はご理解いただけてますか? (Asa) 2025/12/26(金) 01:05:54
(シロ) 2025/12/25(木) 23:23:53 こちらの回答からは、「別ブックを開いているかどうか」が処理に影響する妥当性が見当たりません 「エクセルシートに貼り付けている別ファイルを」という、新たな謎も出てきました
推測に推測を重ねて回答しますが 1. 別ブックの画像を参照するような数式は、そのファイルを開かずには更新されません 2. 1を踏まえると、同じブックで完結させるか、VBAで「開いていないように見せる」かしかありません (Asa) 2025/12/26(金) 01:10:51
既に指摘いただいたととおりかと思います。
"画像参照"といったブックベースの名前を定義します。(ひとまず"参照テスト.xlsm"は開いておきます) =INDEX([参照テスト.xlsm]Sheet1!$B:$B,MATCH(Sheet1!$A$1,[参照テスト.xlsm]Sheet1!$A:$A,0))
画像を挿入した図形を作成して、数式バー上で =画像参照 としてSheet1!$A$1を変化させると、それに応じて画像が変化します。
そこで、"参照テスト.xlsm"を閉じてしまうと、 Sheet1!$A$1を変化させても、画像が更新されません。 ここを何とかしたい、手はないか、ということのようです。
試してみましたが、 ・ブックを開いていない限り、参照画像の変更は反映されません。(質問内容の確認) ・閉じている状態で、「ブックのリンク」の「すべて更新」を実行しても、効果はないですね。 ・ブックを開くときのオプションを「自動更新」にしても効果はありません。
どうやら、通常のセルの参照とは違うメカニズムに従っているようで、仕様のようです。 いかんともし難いように思います。 諦めて普通に開くことを推奨します。
(xyz) 2025/12/26(金) 06:41:03
画像を同じブック内に張り付けておけば(その分ファイルサイズは大きくなる)
先に書かれてあった、カメラ機能が使えますが
映し出すのはセル単体、セル範囲なんで、画像はその範囲に収まっていること
(気分) 2025/12/27(土) 17:33:15
因みに私のエクセルではカメラ機能で =INDIRECT(A1) とか使えなくなってた?? A1には入力規則のリストで =$E$1:$E$3
E
1 Sheet2!B3
2 Sheet2!c3
3 Sheet2!D3
の文字
あれって感じ?やり方間違ってた? やり方覚えてない (気分) 2025/12/27(土) 21:31:01
補足です。 > 試してみましたが、 > ・ブックを開いていない限り、参照画像の変更は反映されません。(質問内容の確認) > ・閉じている状態で、「ブックのリンク」の「すべて更新」を実行しても、効果はないですね。 > ・ブックを開くときのオプションを「自動更新」にしても効果はありません。 また、参照先ブックを閉じてしまってから、 =画像参照 という数式を画像図形に再度設定しようとすると、 「参照が正しくありません」というエラーになるのです。
==================== 別のアプローチをとるのであれば、 ・A列の数字と それに対応した画像のフルパスの対応を表にしておき、 ・A列を変更する都度、 対応するフルパスを取得して、VBA で画像をそのセルに読み込む という方法にすることです。
すべての画像をブックに読み込むことはせずに、必要な画像だけをその都度読み込むということです。 これを実現するコードはありふれたものなので、少し検索すれば直ぐに見つかるはずです。
なお、画像データについて、現在 ・画像データをそのままブックに保持する方式なのか、 ・リンク方式にして、画像データは外部に持たせたままにしているのか 説明が無いようですが、 後者であればブックのサイズは小さくてすみます。(読み込む時間はかかるでしょうけど)
A列が変わった都度、(既存の画像は削除して)画像を再読み込みする方式に変更するなら 1つの画像しか持たないので、データの保持の仕方の差異(サイズの差)は、 ごく小さいものになるでしょう。 (xyz) 2025/12/27(土) 22:59:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.