- 締切済み
ファイル名を書くことによるファイル内の数値の呼び出しを教えてください。
あるエクセルファイル名をセルに書くことでその中のデータを呼び出したいと思ってVLOOKUPを使ってみたのですが… セルB1にaaa.xlsと書いて =VLOOKUP(a,[=B1.xls]c!,$A$1:$F$50,1)と書くとファイルが見つかりませんといわれます。ファイル名を書くことでその中のデータを呼び出すことは可能でしょうか? すいません全然分かってないので質問もよく分からないのですがなんとか大量のエクセルファイルをまとめたいです。宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ka_na_de
- ベストアンサー率56% (162/286)
過去の質問を検索するといろいろ出てくると思います。 いずれもマクロになりますね。 例えば、 もし、B1セルに aaa.xlsと文字入力されていて、 A1セルにaaa.xlsファイルのSheet1シートのA1セルの値を参照したい場合は、 以下のマクロを標準モジュールに登録して実行すればできます。 Sub Test() Range("A1").Value = "='" & ThisWorkbook.Path & "\[" & Range("B1").Value & "]Sheet1'!A1" End Sub ただ、マクロを使うのなら、特定のセルに入力されたファイル名の ファイルをオープンさせる事は簡単にできますよ。
- ka_na_de
- ベストアンサー率56% (162/286)
#1です。 この方法は、 aaa.xls ファイルをオープンしていないと参照できません。 開いていますか?
補足
解答いただきましてありがとうございます。 ファイルを開いておりませんでした。 ファイルを閉じたままで、参照する方法はないでしょうか? 宜しくお願い致します。
- ka_na_de
- ベストアンサー率56% (162/286)
もし、B1セルに aaa.xlsと文字入力されていて、 A1セルにaaa.xlsファイルのSheet1シートのA1セルの値を参照したい場合は、 A1セルに =INDIRECT("[" & B1 &"]sheet1!A1") と入力してみてください。 次に、ご質問の VLOOKUP関数への応用などはこれをアレンジしてみてください。
補足
解答いただきましてありがとうございます。 しかし、そのままの方法で実行しますと#REFと表示されます。 INDIRECTを少し調べてみましたが、エクセルファイルを参照することは不可能なのでしょうか。宜しくお願い致します。
お礼
マクロは全然分からないんです。 ただ、やれる方法がマクロにあるということなので、 勉強します。 ka_na_deさんありがとうございました。