Excelで「セルの内容を変えたら、画像も切り替わるように出来ないか」と相談を受けました。在庫リストから指定した商品の画像を表示したいそうです。これは、マクロを使わなくても簡単に出来ます。
ここでは、下の写真のように、B2セルにチーム名を入力したら下の画像が切り替わるようにする例で説明します。ちなみに、ここではExcel2013を使っていますが、他のバージョンだとメニュー等が違うかもしれません。
別シートに画像を貼り付けセルに名前を付ける
まずは、Sheet2などに切り替え用の画像を貼り付けます。セル1つに対して、画像1つを貼り付けていきます。
貼り付けた画像のセルにそれぞれ名前を付けます。ここでは「広島」「巨人」「阪神」などと付けています。
対象のシートに画像を貼り付ける
画像のあるセルを選択してコピーを行います。どこでも良いのですが、ここでは広島のあるA1セルを選択してコピーしています。
目的のシート(ここでは「Sheet1」)に貼り付けます。この時、「形式を選択して貼り付け」-「リンクされた図」を選んで貼り付けます。
名前を定義して参照する範囲を指定する
「数式」-「名前の定義」を押して、「名前」と「参照範囲」を指定します。「名前」は何でもOK(ここでは「チームロゴ」)、「参照範囲」はチーム名を入力するセルをINDIRECT関数で絶対参照として指定します(ここでは「=INDIRECT(Sheet1!$B$2)」)。ちなみに、INDIRECT関数は参照するセルの場所を文字列で指定できる関数です。B2セルに「広島」とか「巨人」とか入れて参照させる予定なので、INDIRECT関数を利用するというわけです。
B2セルに何か入力します(ここでは「巨人」と入れています)。これは、この後で画像とB2セルの内容を関連付ける時に、B2セルが空白だとエラーになるからです。
画像を選択して、「名前の定義」で指定した名前を参照させます(ここでは「=チームロゴ」としています)。
これでB2セルに「広島」「巨人」「阪神」などと入力すると、名前に応じて自動で下の画像が切り替わります。実際に利用する時は、B2セルは入力規則を利用してドロップダウンリストで選べるようにしておけば便利に使えるでしょう。
コメント
[…] エクセルでセル内容に応じて画像を自動で切り替える […]