図のリンク貼り付けとindirect関数

        

indirect関数は 「 指定される文字列への参照 」 を返します。左図で c2 セルには 『 =indirect(b2) 』 と入力されています( b2 セルが空白のままでは #REF! のエラーになります)。b2 セルで 「 a3 」 と入力すれば a3 セルの値 Tuesday が c2 セルに表示されます。また b2 セルで 「 a6 」 とすれば Friday が表示されます。ここでは 「 図のリンク貼り付け 」、「 ドロップダウンリスト 」 および 「 indirect関数 」 を使って曜日が自動的に図表示できるワークブックを作ってみます。

ワークブックの概要

Sheet1

図1.

b2 セルのドロップダウンリストから曜日を選択すると自動的に英語、タイ語のスペルが図表示されます。タイ語は特殊ですがいろんな応用問題を作成することができます。

Sheet2

図2.

Sheet2 を使って作業をします。最初 図2.のようにデータを入力しオートフィル機能を利用して土曜日まで埋めます。筆者はタイ語を頻繁に使うのでユーザー設定リストを作成しているので全て自動的に図3.のように埋めることができます。

図3.

図3.は中央揃えやフォントカラーを適当に設定します。ここではタイの誕生曜日を色で表示しています。(日/赤 月/黄 火/桃 水/緑 木/橙 金/青 土/紫) 図1.で表示される図を鮮明に表示させる目的でこのワークシートは枠線なしに設定しています。 (末尾にタイ文字を表示しています。)

範囲名の設定

図4.

a1 〜a3 セルを選択し、Excel2003 では 『 挿入(I) 』→ 『 名前(N) 』→ 『 定義(D)』 で、Excel2007 では 『 数式 』タブの 『 名前の定義 』 で 図のような ダイアログボックス( Excel2007 では 『 新しい名前 』)が表示され、【 日曜日 】が自動的に表示されるので OK を押すだけで容易に設定できます。あるいは a1 〜a3 セルを選択し名前ボックスに直接日曜日と入力してもかまいません。

次に b1 〜b3 セルを選択し 【 月曜日 】、 c1 〜c3 セルを選択し 【 火曜日 】… と範囲名を 【 土曜日 】まで作ります。

続いて、a1 〜g1 セルを選択し同様にして範囲名 【 曜日選択 】 とします。名前ボックスに直接入力してもかまいません。この 【 曜日選択 】 の名前は別名でも OK ですが後の操作で必要なので覚えておかなければなりません。 図4.はここまで全て終了した画面です。『 新しい名前 』 ダイアログで 既設定の範囲名が表示されない場合は 『 名前の管理 』 で確認します。


ドロップダウンリストの設定

図1.

ドロップダウンリストの設定参照

Sheet1 の b2 セルをアクティブにして、Excel2003 では 「 データ 」 → 「 入力規則 」 で、Excel2007 では 「 データ 」 → 「 データの入力規則 」 で「 データの入力規則 」のダイアログボックスが表示されます。ダイアログボックスの 「 入力値の種類(A) 」 で 『 リスト 』 を選択すると 「 元の値(S) 」 のテキストボックス が表示されます。『 = 』 をタイプした後に続けて 【 曜日選択 】とタイプ入力 (つまり、 ”=曜日選択 ”)して OK を押します。 b2 セルにドロップダウンメニューが設定されていることを確かめてください。

この段階で曜日を選択しても選択曜日が入力されるだけですが適当な曜日を表示させておきます。

図のリンク貼り付けと indirect関数

図3.

Sheet2 で 図3.のように選択して Ctrl + C でコピーしておいて、Sheet1 の 貼り付けたい場所を指定し、Excel2003 では 「 Shift 」 キーを押しながら 「 編集 」 をクリックし、 「 図のリンク貼り付け 」 をクリックします。

Excel2007 では 「 ホーム 」の 「 貼り付け 」 → 「 図 」 → 「 図のリンク貼り付け 」 を選択します。

Sheet1 の指定場所に図が貼り付けられるので適当な大きさに変更します。なお、この図を選択すると 「 数式バー 」 に 「 =Sheet2!$A$1:$A$3 」 と表示されていることを確かめてください。

INDIRECT 関数の設定

図5.

Sheet1 の b2 セルで 再度図5.の 「 名前の定義 」 のダイアログボックスを表示させ 「 名前(W) 」 に 例えば 【 図 】 とタイプし、 「 参照範囲(R) 」 に 「 =indirect(Sheet1!$b$2) 」 とタイプして OK を押します。()

Sheet1 に貼り付けられた図を選択し 「 数式バー 」 に表示されている 「 =Sheet2!$A$1:$A$3 」 を 「 =図 」 に変更します。以上で完了です。b2 セルのドロップダウンリストから曜日を指定すると図が変更します。

(補足) 図のリンク貼り付けで当初 Sheet2 の a1〜a3 セルの内容( Sheet2!$A$1:$A$3 )が図として貼り付けられています。セル上に図があればその図も表示されます。リンク貼り付けなのでこの a1〜a3 セルデータや図を変更すると、貼り付け先の図も自動的に変わります。コピー元の Sheet2!$A$1:$A$3 が範囲名 【 図 】 に変更、設定されているので 【 図 】 の範囲を参照しますが 【 図 】は 「 =indirect(Sheet1!$b$2) 」 と指定されているので b2 セルに書かれた範囲名が Sheet1 の図に反映されます。

 失敗例の多くはこの段階です。図5の 名前( 特に【 図 】 )と 範囲を再確認します。図5 では indirect(b2) となっていますが indirect(Sheet1!$b$2) の方がbetterです。」

(参考)タイ語のスペルを表示させるには次の表をコピーして Excel Sheet2 の a1 セルに貼り付けることができます。
日曜日月曜日火曜日水曜日木曜日 金曜日土曜日
SundayMondayTuesdayWednesdayThursdayFridaySaturday
วันอาทิตย์ วันจันทร์ วันอังคาร วันพุธ วันพฤหัสบดี วันศุกร์ วันเสาร์

このサイトで扱った項目