みなさん,こんにちは。
シンノユウキ(shinno1993)です。
Excel上でセルの値に応じて表示する画像を変更したいことがあると思います。一般的にはVBAが使用されますが,Excelの標準機能である「名前付き範囲」と「リンクされた図」を組み合わせることで,ノーコードでも実現可能です。
表示する画像をセルの値によって切り替えたい!
たとえば,あるセルの値が「不可」であれば「×」の画像を表示し,「可」であれば「★」の画像を表示したいという場面があるかと思います。
ちょうど,下記のようなイメージですね:
このような場面では,通常VBAが使用されます。セルの値によって画像の表示・非表示を切り替えたり,別のシートからコピーしてきたり。これによって上記を実現します。
しかし,どうしてもVBAが使用できない場面もあるかと思います。そのような場合には,下記に紹介するような方法によって,VBAを使用せずとも上記を達成することができます。
Excelで表示する画像をセルの値で切り替える方法
下記で,Excelで表示する画像をセルに入力された値によって切り替える方法を紹介します。
はじめに(言い訳のように)書いておきますが,今回紹介する方法はあまりシンプルではありません。結構面倒くさいです。VBAで制御した方が簡単に思えるくらい。
とはいえ,Excelの基本機能でできることはExcelでやるのがベターではありますので,興味ある方はやや覚悟して下記を読み進めてください。
- STEP.1セルに表示する画像を配置する
まずはセル上に表示したい画像をすべて配置しておきます。下記のように1セル1画像を配置しましょう。別のシートで定義しておくとシンプルかもしれません。
- STEP.2画像の配置されたセルに名前を定義する
画像の配置されたセルに「名前の定義」を行っていきます。画像の含まれるセルを選択→「数式」→「定義された名前」→「名前の定義」をクリックします:
「名前」を「可」とし,「OK」をクリックします:
おなじく,「不可」の場合も名前を定義します。「名前」は「不可」とします:
- STEP.3名前の定義で値を入力するセルを参照する
表示する画像を切り替える条件を指定するセルを名前の定義で参照します。
条件の含まれるセルを選択→「数式」→「定義された名前」→「名前の定義」をクリックします。「名前」を「判定」とし,「参照範囲」は条件の含まれるセルをINDIRECT関数の引数として「OK」をクリックします:
- STEP.4セルを「リンクされた図」で貼り付ける
実際に画像を表示させたい場所に,「リンクされた図」を作成していきます。これには,Excelのコピー・ペーストの機能を使用します。
どこでも良いので,下記のようにセルをコピーし,
実際に画像を表示したいセルを選択し,右クリック→「その他の貼り付けオプション」→「リンクされた図」を選択します。これで「リンクされた図」を作成できます:
- STEP.5「リンクされた図」の参照先を変更する
最後に「リンクされた図」の参照先を変更します。「リンクされた図」を選択すると,数式バーに参照先が表示されていることを確認できるかと思います:
数式バーを「=判定」に変更します。「判定」はSTEP.3で定義しましたね。INDIRECT関数で条件の含まれるセルを参照した名前付きの範囲です。
これでセルの値に応じて表示する画像を切り替えられるようになりました!
まとめ
今回は,Excelで表示する画像をセルに入力された条件によって切り替える方法を紹介しました。
名前付き範囲を,表示する画像や条件を表示するセルごとに設定せねばならず,かなり面倒な方法ではあります。この方法が必要になるシチュエーションがないのを願うばかり。
とはいえ,VBA等でシンプルにできない場面が(どうしても)あるかと思いますので,そういった時はこの方法を採用してみても良いかもしれません。