ExcelのVLOOKUPはとても強力な関数です。一覧表のデータから表引きをして必要なデータを求められます。数値でも文字でも自在に扱えます。ただし画像のようなオブジェクトデータは表引きできません。そこで今回はあたかもVLOOKUP関数のように画像を表引きできるワークシートをマクロを使わずに作ってみました。

 先にVLOOKUP関数について簡単におさらいしておきましょう。図1の表のデータ部分には「会社一覧」という名前を付けてあります。ここで空いているどこかのセルに「=VLOOKUP("デルタ航空",会社一覧,3,0)」という数式を入力すれば「ジョージア州」という値になります。表の左端列が「デルタ航空」の行の左から3列目に入っているデータを返します。しかし「=VLOOKUP("デルタ航空",会社一覧,7,0)」としても7列目にある写真は表示できません。

図1 航空会社の一覧表。これを元表としてVLOOKUP関数で表引きをする。G列のセルには画像が貼り付けてある
図1 航空会社の一覧表。これを元表としてVLOOKUP関数で表引きをする。G列のセルには画像が貼り付けてある
[画像のクリックで拡大表示]

 図2が実際に作成したシートです。文字データの表示にはVLOOKUP関数を使っています。A2セルの航空会社を切り替えると対応したデータが表示されます。具体的な数式はファイルをダウンロードしてご覧ください。

図2 A2セルをクリックすると右に▼が現れる。航空会社名を切り替えると、国名や所在地、5行目の各種コードのほか、飛行機の写真も切り替わる
図2 A2セルをクリックすると右に▼が現れる。航空会社名を切り替えると、国名や所在地、5行目の各種コードのほか、飛行機の写真も切り替わる

 さて飛行機の写真が表示されている部分です。航空会社を切り替えると図1のG列に貼り込んだ写真が表示されます。これは「画像のリンク貼り付け」という機能を使っています。

 これを実現するために図1のシートにも細工が必要です。写真を貼り付けてあるG列のセルにはあらかじめ航空会社の名前を付けてあります。G2セルは「日本航空」、G3セルは「全日本空輸」という具合です。手作業でたくさんの名前を付けるのは大変ですから「名前の作成」という機能で一気に名前を付けてあります。その後、図1のG2セルをコピーして図2のシートの写真部分に「図のリンク貼り付け」で貼り付けます。

 「図のリンク貼り付け」はExcel 2003以前のバージョンなら[Shift]キーを押しながら「編集」メニューを開くと現れます。Excel 2007だと「ホーム」タブにある「貼り付け」ボタンの下半分の領域をクリックして「図」→「図のリンク貼り付け」と選択します。これで取りあえず飛行機の写真が表示されます。見やすい大きさにサイズを調整してください。

数式に名前を付ける

 ここから画像が切り替わる設定をしましょう。図2のA2セルに「個別社名」という名前を付けた上で、さらに「航空機画像」という名前を定義して「=INDIRECT(個別社名)」という数式を設定します。通常なら名前定義の対象はセル範囲ですが、セル範囲の代わりに数式を入力しておきます。

 ここで図2にリンク貼り付けした画像を選択した状態でExcelの数式バーに「=航空機画像」と入力します。これで図2のA2セルの航空会社名を切り替えると航空機の画像も自動的に変わるようになります。なお、A2セルはクリックすると右側に▼マークが現れて、図1のA列にある航空会社名を選択できるようにしています。これはExcelの入力規則機能です。

 ダウンロードしていただくファイルの図1に貼り付けてある写真は元の画像を5分の1のサイズに縮小しています。図2に貼り付けた段階で5倍に拡大して元の大きさに戻しています。Excelのバージョンが2000や2007では解像度が悪く表示されてしまいます。あらかじめご了承ください。2002や2003ではきれいに表示されます。

サンプルファイルの公開は終了しました。