「StiLL」Excel情報497 オブジェクト--IF関数の結果に応じて画像を切り替える方法
【テーマ】
今回は、IF関数の結果に応じて画像を切り替える方法をご紹介します。
【方法】
セルと画像に名前の定義を関連付けることで実現します。
【参考】
セル内容に応じて画像を切り替える方法は「バックナンバー496 セルの内容に応じて画像を切り替える方法」、INDIRECT関数については「バックナンバー291 シートの特定セルの値をとる」をご参照ください。
通常、IF関数は設定した条件に従ってセルの値を変えることができますが、画像を変えることはできません。
今回は、IF関数の結果に応じて画像を切り替える方法をご紹介します。
■考え方
1.元になる画像
    画像が貼り付けてあるセルに名前をつける
    ※ 定義する名前は、IF関数で表示するものと同じ名前にしてください
      (IF関数の結果と連動します)
      例:達成、未達など
2.名前を定義する
      例:A支店
    参照範囲は=INDIRECT(IF関数の結果を表示するセル)とする
      例:=INDIRECT(評価!$C$3)
3.画像に「2」で設定した名前をリンクさせる
      例:A支店
例として下図を使用します。
「評価」欄(D列)が「達成」ならE列に「笑顔」の画像、「未達」なら「泣き顔」を設定します。
評価シート: ・「評価」欄(D列)にはIF関数が設定されています。
 (「売上金額」欄(C列)が5,000以上なら「達成」、5,000未満なら「未達」)
    ※IF関数については、以下のバックナンバーをご参照ください。
【バックナンバー270】 関数--条件の判断IF関数
  ・「評価基準」欄(H列)には画像が貼り付けてあります。
■設定方法
1.画像を貼り付けたセルに名前をつける
     「評価基準」項目(H列)の画像があるセルに名前をつけます。
     例では、H3 セルに「達成」という名前をつけました。
        (同じように H4 セルに「未達」という名前をつけます。)
     ポイントは画像ではなく、画像を貼り付けたセルに名前をつけることです。
2.評価対象に対して名前を作成する
     下図には、評価対象が「A支店」「B支店」「C支店」と3つありますので、
     3つ名前を作成します。
     「名前」には任意の名前を設定します。(例では、A支店という名前を設定しています。)
     参照範囲にはINDIRECT関数でIF関数の結果を表示するセル(評価!$D$3)を指定します。
     (例では「=INDIRECT(評価!$D$3)」)
INDIRECT関数は、指定したセル番地の値を間接的に参照して表示します。
例えば下図のように、A1セルに「B4」という値が入っており、
B4セルには「テスト」という値が入っている場合、
C1セルに設定した「=INDIRECT(A1)」の数式は、「テスト」を表示します。
    ※INDIRECT関数の詳細については、以下のバックナンバーをご参照ください。
【バックナンバー291】関数--シートの特定セルの値をとる
     同じようにB支店、C支店を設定します。
3.画像が入っているセルをコピーして、「リンクされた図」として貼り付ける
     画像が入っているセルをコピーし、画像を表示するセルに「リンクされた図」で貼り付けます。
※画像自体はコピーしないでください。
     例では、H3セルをコピーして、E3セルに貼り付けています。
     同じようにしてE4、E5セルにも「リンクされた図」で貼り付けます。
4.貼り付けた図の数式を変更する
     貼り付けた図の数式バーには、コピー元のセル番地が設定されていますので、
     「2」で作成した名前に変更します。
     例では、E3セルに貼り付けた画像の数式を「=$H$3」から「=A支店」に変更しました。
     同じようにしてE4セルに貼り付けた画像の数式は「B支店」、
     E5セルに貼り付けた画像の数式は「C支店」に変更します。
上記を設定後、売上金額を増減すると、評価によって画像が変更されます。
本件は、評価対象のセル一つ一つに名前を付ける為、評価対象が多い場合には向きません。
その場合、StiLLを使って、もっと簡易的に作ることができます。
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます