• 締切済み

他のBookに指定している外部参照先をセルの文字列で指定する方法

マクロを使わずに外部参照先を変更する方法を探しています。 例えば, C:\○○フォルダにA+1.xls,A+2.xls・・・A+10.xls という感じでA+X.xlsのXの部分が1~10までのファイルがあります。 それぞれのファイルのSheet1!A1に数値が入力されています。 開いているBookのセルC1に ='C:\○○[A+X.xls]sheet1!A1 みたいな感じで数式を入力して, セルB1にXの部分(1~10)を入力すると セルC1に入力した番号のファイルの Sheet1!A1の数値を出力する方法はないでしょうか? マクロではできるのですが,マクロを使わずに実現したいです。

みんなの回答

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

Excelの標準機能ではマクロを使わずにシートの記述中から別のブックを開くことはできません。 別のブックを指定して開くにはマクロ(VBA)を使用する必要があります。 他のブックへのリンクがあるならば、  編集 → リンクの設定 →(開きたいブックを指定)→ リンク元を開く で選択して開くことができます。 質問の意図から外れますが、 どうしてもマクロを使用したくないのであれば、あらかじめ必要なブックを開いておいてはどうでしょう。 ブックが開いているのであれば、INDIRECT関数で参照元を変更可能です。 あらかじめ必要なブックを開いておき、  ファイル → 作業状態の保存 これで開いているブックを記録したリンクを保存しますので、次回からはこのリンクを開くだけで 必要なブックを全て同時に開くことができます。

murakami2
質問者

お礼

やはりマクロじゃないと出来ないんですね。 出来ないことがが判っただけでも前進です。 ご回答ありがとうございます。 作業状態の保存は知りませんでした。 勉強になりました。ありがとうございます。

関連するQ&A

  • EXCEL2010 他ブック セル参照

    Book1のA1セルに、Book2のA1セルを参照するため、 ='D:\TEMP\[Book2.xls]Sheet1'!$A$1 を入力しています。 Book2のSheet1には、マクロを組んでいて、その結果を$A$1から$C$50の範囲に表示させています。 Book1のA1からC50までには、Book2のA1セルからC50までには、同様の式を入力しています。 ご教授願いたい内容は、Book2のマクロ実行後に、Book1に='D:\TEMP\[Book2.xls]Sheet1'!$A$1 を入力した場合は、その結果が表示されるのですが、その後にBook2を更新しマクロ実行すると、Book1の式が='D:\TEMP\[Book2.xls]Sheet1'!'!#REF!とエラーになってします。 Book2を開いて、整列表示の場合でも(='[Book2.xls]Sheet1'!$A$1)結果は、同じです。 何か大事なことを忘れている?または、マクロ実行結果を参照するのは元々無理なのか?悩んでいます。 一応ネット検索したのですが、該当する対処方法が見つけられず、困っています。 解決方法をご教授いただきたく、お願いいたします。

  • 他のブックファイルのセルの参照が上手く行きません

    こんにちはよろしくお願いいたします。 エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。 しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となっています。式は,キーボードを使って変更しました。もちろん,(Book3.xls)は,(Book2.xls)と同様のシート形式をもち,データも入力されています。 このような状態になると,先に挙げたように,”=”を入力して参照するブックファイル(Book3.xls)のセルをクリックしても,ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となったままで,(Book3.xls)のデータは表示されません。 (Book2.xls)と(Book3.xls)のセルのデータは,文字列です。 気になるのは,(Book1.xlsx)はoffice2010で作成されたファイルであること,(Book2.xls)と(Book3.xls)は,互換モードと表示されるファイルであること,また表示されているファイルを見ると,フルパスで参照している点です。「 ='C:\aaa\bbb\・・・・・[Book3]Sheet1'!$A$1 」という参照式になっています。3つのファイルはすべて同一ファイルに入っています。 何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • エクセルで他のブックの参照

    ファイル名:Test1.xlsのセルに、"="と入力し、ウィンドウで、Test2.xlsを選択して、Sheet1の"A1"のセルを選択すると、Test1.xlsのセルには、=[Test2.xls]Sheet1'$A$1と入力されます。 そこで、一度Test1.xlsを保存して、再度開くと、、=[Test2.xls]Sheet1'$A$1の部分が、絶対パスに自動的に更新されてしまします。 これを、相対パスで扱う方法ってありますでしょうか? フォルダーを移動させることがあり、どのように対応すればいいのか悩んでいます。 宜しくお願い致します。

  • エクセルで列番号を指定し、それを元に参照をしたい

    エクセルで、 セルA2に数値Xを入力すると、 セルA3に別シートのCXの値を表示する という動きを実現したいのですが、方法がわかりません。 例えば シート1のセルA2に数値3を入力すると シート1セルA3に、シート2のC3の値が表示される といった動きです。 どなたかご教授願います。 宜しくお願いいたします。

  • マクロで他ブックを開きデータを取得する方法について

    BOOK1は集計表でシートは1枚です。BOOK2はデータ入力シートで50位のシートが含まれています。 BOOK1からマクロでBOOK2を開き、各シートにあるデータをBOOK1(集計表)の所定のセルへ表示させようと考えています。例えば「BOOK2のSheet2のセルC6のデータをBOOK1のセルF8へ、Sheet3のセルC6のデータをBOOK1のセルF12へというように順次50枚のシートに入力した各データをBOOK1の集計表に表示させる予定です。どのようなマクロ構文にしたら良いのでしょうか? ご教授よろしくお願いします。

  • Bookの参照をはずした形式でペーストする方法 エクセル

    以下2つのファイルがあります。 □Book1  Sheet1   A1セル =Sheet2!A1  Sheet2   A1セル 1 □Book2  Sheet1   A1セル =[Book1]Sheet2!A1  Sheet2   A1セル 2 Book2,Sheet1,A1セルは、 Book1,Sheet1,A1セルをコピーペーストした結果です。 この状態では、Book2,Sheet1,A1セルには"1"が表示されます。 Book2,Sheet1,A1セルに"2"を表示するために、 Book1,Sheet1,A1セルのコピーを Book2,Sheet1,A1セルに"=Sheet2!A1"としてペーストで入力したいのですが、 普通にペーストしたときは、上記の結果、 「形式を選択して貼り付け」→「数式」としても同じ結果となってしまいます。 どのようにすれば、Bookの参照をはずした形式でペーストできるのでしょうか。 よろしくお願いします。 Excel2003

  • Excelで参照用の文字列を数式にする方法

    少々分かりにくいとは思いますが、困っているので質問させて頂きます。 状況、A.xlsというファイルに1から100のシートがある状態です。 各シートのA1には名前が入っているのですが、ここから別のB.xlsファイルに名前の一覧を作成したいというものです。 B.xlsに表示させたい内容(CSVで表示) 番号,名前 1,シート1のA1に記入された名前 2,シート2のA1に記入された名前 B.xlsのB2には、='[A.xls]1'!A1 と入力すれば良いのですが100個分を一つ一つコピーするのは非常に面倒ですし、住所等の項目が増えたり、数も増える可能性があります。この数式自体を文字列操作で作成することは簡単なのですが、作成した文字列を数式として実行させることができないかと思い投稿しました。 または、上記を実現する簡単な方法があればとも思います。 よろしくお願いします。

  • 別のブックから、特定のシートを指定して他のブックを開くには

    マクロ初心者です。 A.xlsと、B.xlsという2つのブックがあります。 B.xlsはこの時、閉じた状態です。 Aには1つのシートのみがあって、Bには日毎に追加されていく不特定数のシートがあります。 Aのブックのシート内のセル番地A1に、「aaa」と入力した場合、B内の「aaa」という名前のシート名を指定してB.xlsを開くマクロはどう書いたら良いのでしょうか。 頼りきりの質問になってしまって申しわけございません。 何卒宜しくお願い申し上げます。