• ベストアンサー

Excel シートの参照方法

Excelを勉強中の者です。 =VLOOKUP(E3,参照表!$A2:$K10,2,FALSE) この参照表というシート名の参照を下記のようなシートのインデックス番号で指定することはできないのでしょうか? =VLOOKUP(E3,worksheets(1)!$A2:$K10,2,FALSE) また、インデックス番号で参照するような、そのままシート名で参照する以外の他の方法がありましたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

いいえ。そういう指定の方法は全くありません。 比較的簡易な方法: A1からA3セルに Sheet1 Sheet2 Sheet3 のようにシート名を列記しておくと =VLOOKUP(E3,INDIRECT(INDEX(A1:A3,2)&"!A2:K10"),2,FALSE) のようにしてリストの2番目のシートを計算に使用するよう仕込むことができます。 もちろん「2」番目と指定するため,2と記入した更に別のセルを参照させるなどの仕込みをします。 もうちょっと隠した方法: 挿入メニュー(Excel2007以降では数式タブ)の名前の定義で 名前 リスト 参照範囲 ={"Sheet1","Sheet2","Sheet3"} のように登録しておき,数式は =VLOOKUP(E3,INDIRECT(INDEX(リスト,2)&"!A2:K10"),2,FALSE) のようにしてリストの2番目のシートを計算に使用するよう仕込むことができます。 もちろん「2」番目と指定するため,2と記入した更に別のセルを参照させるなどの仕込みをします。 ダイレクトな解決方法: ALT+F11を押してVBE画面を開き 挿入メニューから標準モジュールを追加して private function mySheetRange(a1 as long, a2 as range) as range set mysheetrange = worksheets(a1).range(a2.address) end function などのように記載してユーザー定義関数を作成しておき =VLOOKUP(E3,mySheetRange(2, A2:K10),2,FALSE) のようにして計算に使用します。

関連するQ&A