Excelで、商品台帳や備品台帳を作成している方も多いと思います。
商品名や価格、JANコードなどのデータとともに、写真を入れておくと、一目でどの商品か分かったり、取り違えを防いだりするのに役立ちます。
しかし、これまで、写真をExcelのセルに埋め込むのは、コツが必要でした。

画像のサイズと、セルのサイズを合わせたうえで、「プロパティ」を設定していました。こうしないと、並べ替えやフィルタをかけた際に、画像がずれてしまいます。
また、うっかり画像をマウスで移動してしまうと、商品と画像の対応が変わってしまい、正しく動作しなくなって大変でした。
それが、最近の新機能により、画像を簡単にセルに埋め込めるようになりました。記事にまとめておきたいと思います。
※この機能は、現在Excel 365 のみで使用できます。(バージョン2312で動作確認しています。いくつで追加されたのかちょっと確認できてません)
画期的な新機能「画像をセルに配置」
Excelの「挿入」→「画像」ボタンの中に、「セルに配置」という新しい選択肢ができました。

この方法で、セルに画像を挿入すると、このようになります。

「セルの上に配置」は、従来と同じ挿入方法です。画像をクリックすると、周囲に枠線と拡大縮小用のマークが表示されます。
対して、「セル内に配置」では、画像をクリックしても、そのセルがアクティブになるだけです。移動も、拡大縮小もできません。
右上に表示されているアイコンは、「セルの上に配置」のモードに変換するためのショートカットになっています。

画像が、オブジェクトでなく、「セルの値」そのものになった
つまり、画像が、セルの上に置かれたオブジェクトではなく、セルの値そのものになった、ということになります。
このことによって、さまざまなメリットが生まれます。
ただ画像を配置するだけで、並べ替え・フィルターができるようになった
画像サイズや、プロパティを気にすることなく、単純にデータとして取り扱うことができ、並べ替え・フィルターの対象にしやすくなりました。

数式によって画像を表示できるようになった
画像が、セルの値そのものになったことによって、さまざまな関数の戻り値が画像になることができます。XLOOKUP関数で、商品画像そのものを表示したり、FILTER関数で、画像を含む表全体を絞り込んだりできるようになりました。もちろん、ただのセル参照や、リンク貼り付けも有効です。


従来の方式で作られた表も、簡単に「画像をセル内に配置」に変更できる
「画像をセル内に配置」ができる前に、従来の方式で画像を埋め込んだ表も、簡単に「画像をセル内に配置」に変更できます。

配置済みの画像を選択すると、このように「セル内に配置」に変更するボタンが表示され、クリックするだけで「セル内に配置」に変更することができます。
ただし、画像を複数選択すると、この操作はできなくなるようです。

リボンにもボタンはあるのですが、複数選択すると、グレーアウトしてしまいます。
このあたり、できれば、複数まとめて変更、もしくは、シート内全部変更などができると、既存のブックの活用はやりやすくなるように思います。マイクロソフトさん、お願いします。
「画像をセルに配置」と、IMAGE関数の違い
少し前に追加された「IMAGE関数」も、似たような特性をもっていました。

IMAGE関数を使って画像を配置した場合も、「画像をセルに配置」と同じように、画像そのものをセルの値として扱うことができ、並べ替え・絞込み、関数による抽出などが可能でした。
しかし、IMAGE関数は思いのほか制約が多く、使いづらいことも多かったのです。それに比べ、今回の「画像をセル内に配置」は、多くの面で画期的なものでした。
IMAGE関数では、オンライン上の画像しか参照できなかった
IMAGE関数の引数としては、「https://」で始まるURLしか指定できませんでした。このため、コンピュータのフォルダ内にあるローカルの画像を配置することは出来ませんでした。
それが、「画像をセル内に配置」では、いとも簡単に配置できるようになったのです。
IMAGE関数は、外部ソースを引いてくるため、セキュリティ設定の影響を受ける
IMAGE関数は、外部ソースの画像を引っ張ってくる形のため、Excelのセキュリティ設定の影響を受けました。「#BLOCKED」のエラーになることがありました。
それが、「画像をセル内に配置」では、シート内に直接挿入されるため、心配いらなくなりました。
コメント
ご回答ありがとうございます。
>Power Automateを使えば完全自動化になります
ですが、
Power Automateは法人は有償なので難しいです。
>ショートカットキー一つでも削っていくことが、楽な仕事につながります。
はい、おっしゃる通りだと思います。
>申し込みはメールで入るのでしょうか?
ですが、
電話→faxで紙ベースで注文が入ります。
(今時紙ベースです、、、。)
やはり、「検索・置換」のショーットカットの作成は難しいです。
ここの入口を楽にしたいのですが、
毎回エクセル会員データベース(データベースといえるようなものではないですが、、)
の検索を簡単に検索したいです、、、。
ご返信遅くなりました。やはり紙ベースですか。
それならば、そこは人間が読み取って、特定のセルに入力するようにしてみたらいかがでしょうか。
そうすると、そのセルを参照する別シートの数式によって、計算表シートに自動的に会員状態、それにもとづく単価が反映できるはずです。
VLOOKUP(XLOOKUP)は、それ自身が検索機能の関数ですから、わざわざ「検索・置換」をする必要はないと思います。
おはようございます。
いつもお世話になってます。
365には便利機能があっていいですね。
まだまだサブスクには抵抗があります、、、。
おいそがしいところすいません。
ご教授ねがいたいことがあります。
☆エクセルの「検索・置換」のことです。
例えばですが
1,
会員情報リストがあり
お客様から申し込みがはいったら
毎回会員情報リストを開いて
ctl+f4等で「検索・置換」をひらいて
検索をかけて
2,
別のブックに作成してある計算表に
会員だったら、会員価格を入力して計算させる、
会員でなかったら、非会員価格を入力して計算せせる
といったながれがあるのですが、
少し効率よくできないかと思いました。
例えばですが、
1,
会員情報リストのあるブックのどこか又は、windowsのホーム画面に、
「検索・置換」のショーットカットを作成できないかと
思いました。
マクロでしかできないでしょうか?
もし、そでしたら、コード等ご教授頂ければ幸いです。
2,
別ブックに作成してある計算表は毎回同時に開いているので、
会員リストブックに移動させて(別ブックのままでいいのらそのままで)
3,
会員と判明したら
それを計算表シートに自動で会員なら1、非会員なら2,とかにして
vlookup関数で
計算表のお客様名入力欄のところに反映したいです。
計算表に名前を反映させるには
それを計算表シートに自動で会員なら1、非会員なら2,とかにして
vlookup関数で
計算表のお客様名入力欄のところに反映がベストな関数ですか。
何かいい方法があればご教授お願いします。
お忙しい中、ご迷惑おかけします。
宜しくお願い致します。
こんにちは、いつもご覧いただきありがとうごさいます。
ご質問の内容ですが、まず最初の「お客様から申し込みが入ったら」がポイントだと思います。
申し込みはメールで入るのでしょうか?
私なら、まずその申し込みメールから氏名か会員番号を抽出するところから自動化したいと思います。
Power Automateを使えば完全自動化になりますが、それは無理でも、例えば、メール本文を何も考えずにすべて選択→Excelの専用シートに貼り付ければ氏名が抽出されれば楽ですよね。関数などで組めると思います。
それが無理なら、次は、「氏名or会員番号を特定のセルに貼り付ければ、自動的に計算表が出来上がる」は組めると思います。
氏名だと、表記ゆれ、スペースあるなしの揺れが発生しますので、できれば会員番号などがよいです。
おっしゃるようにVLOOKUP(2021以降ならXLOOKUP)だけでいけるかなと思います。
とにかく人間が行う操作は、ショートカットキー一つでも削っていくことが、楽な仕事につながります。