• ベストアンサー

Excelでファイルを越えて連携できるのでしょうか

Excel2010なのですが、同じファイルであればシートをまたいであるセルを参照出来ますが、 別ファイルの、あるシートのあるセルを参照するというような事は出来ないのでしょうか? ほんの初歩的なマクロは学んだのですが、そういうファイルをまたいでの設定は無かったように思いますが、マクロとか使えば出来るのでしょうか? 例えばプログラミングなどであるinclude()などあればファイルを参照出来るのでしょうが。

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

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

エクセルの数式では, ='c\test\[book1.xls]Sheet1'!A1 といった数式で多ブックの値を参照し計算に利用できます 参照元ブックを開いておいて =[book1.xls]sheet1!A1 のように数式を作成し,参照元ブックを保存して閉じると,自動で閉じたブックを参照する式に書き換わります。エクセルの操作になれていないときは,こちらの手順を行った方が間違いがありません。 マクロでは別のブックを「開いて参照する」のが原則です。 sub macro1()  dim w as workbook  set w = workbooks.open("c:\test\book1.xls")  msgbox w.worksheets("シート名").range("セル番地")  w.close false end sub 開きたくないご相談はしばしば見かけますが,労多くして功少ないの典型と言えます。 方法1:開いているところを見せない sub macro2()  dim w as workbook  dim x  application.screenupdating = false  application.calculation = xlcalculationmanual  set w = workbooks.open("c:\test\book1.xls")  x = w.worksheets("Sheet1").range("A1")  w.close false  application.calculation = xlcalculationautomatic  application.screenupdating = true  msgbox x end sub 方法2:エクセルに閉じたブックの値を取ってこさせる sub macro3()  dim x  range("A1").formula = "='C\test\[book1.xls]Sheet1'!A1"  x = range("A1").value  range("A1").clearcontents  msgbox x end sub 方法3:4.0マクロ関数を使う 色々制約があるのでお薦めしませんが,下記など参考に。 http://www.moug.net/tech/exvba/0060037.html

その他の回答 (2)

回答No.2

マクロ(VBA)の話しで良いですか?(^^) Excel は 別のファイル(ブック)が開いてあれば、参照する事が出来ます。 例えば、ブックA に書いてあるマクロ(VBA)から ブックB の シート1 を参照するなら、 ブックA上で  Workbooks.Open("ブックB")  Workbooks("ブックB").Worksheets("シート1") ~ という使い方が出来ます。 当然、終了時は ブックA と同時に ブックB も閉じる必要があります。

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

参照したいエクセルを開き、参照元のセルに=(イコール)を入れ 参照したいエクセルの参照したいセルを選択してエンターを押せばできます。 ※作業は基本的に同じエクセルの参照と同じで別ファイルを選択するだけです。 参照したエクセルを開いている時はエクセルのファイル名から表示され =[AAA.xls]Sheet1'!$A$1 参照したエクセル閉じた時はエクセルのファイルの場所から表示されます ='C:¥▲▲▲¥×××¥□□□¥[AAA.xls]Sheet1'!$A$1

関連するQ&A

  • excelの他のファイルへのリンク設定

    始めて質問させて頂きます。 EXcelの初歩的な計算式や、基本的な関数がわかる程度で、 マクロなどはわかりません。 よろしくお願いいたします。 環境はMACOS 10.5.5 excelのバーションは2008、または2004です。 1つのファイルに1000sheet以上あります。 1Sheetは横2列は固定ですが、縦は100行前後とバラバラです。 これを1つのファイルの1つのsheetにまとめたいのです。 (縦列と横列を逆にしてまとめたいのです) そこでこういう方法を考えました。 まとめという新規のファイルを作成 加工前ファイル(1つのファイルに1000sheet以上)を開く まとめのセルA1に、加工前のSheet1のセルA1を参照させる まとめのセルB1に、加工前のSheet1のセルA2を参照させる まとめのセルC1に、加工前のSheet1のセルA3を参照させる (以下100まで繰り返し) まとめのセルA2に、加工前のSheet1のセルB1を参照させる まとめのセルB2に、加工前のSheet1のセルB2を参照させる まとめのセルC3に、加工前のSheet1のセルB3を参照させる (以下100まで繰り返し) 次に まとめのセルA3に、加工前のSheet2のセルA1を参照させる まとめのセルB3に、加工前のSheet2のセルA2を参照させる まとめのセルC3に、加工前のSheet2のセルA3を参照させる (以下100まで繰り返し) まとめのセルA4に、加工前のSheet2のセルB1を参照させる まとめのセルB5に、加工前のSheet2のセルB2を参照させる まとめのセルC6に、加工前のSheet2のセルB3を参照させる (以下100まで繰り返し) ただし、この方法ですと、この参照の設定をすべて手作業で行わなければなりません。 例えば、sheet1 だけ設定したら、あとは、なんらかの方法で、sheet1000までの参照を簡単に行えないでしょうか? よろしくお願いいたします。

  • エクセルで、シートからの参照と、他ファイルからの参照と、どちらにするか

    エクセルで、シートからの参照と、他ファイルからの参照と、どちらにするか迷っています。 約100×100セルのシート4枚のさまざまな数値を1シートに参照させてまとめています。各シートはsumとか簡単な計算式を使っているだけで、マクロなどはわからないので使っていません。 さらに参照元が5シートほど増えるのですが、同一ファイル内でシートを増やすか、別ファイルにしてそこから参照するか、迷っています。今とくに動作が重いということはありません。 1ファイルでシートを増やすと、管理はらくだけど各シートへの移動がめんどう。 ファイルを分けると、、、 どちらがおすすめでしょうか?

  • エクセルのマクロで、別ファイルの数値を参照する方法

    現在aaa.xlsというファイルを開いていて、 そのセルA1には20070621という数値が入っています。 別にbbb_20070621.xlsというファイルがあって、 そのファイルのsheet1内の、B1の値を参照したいと思います。 bbb_20070621.xlsのようなファイルが無数にあるので、 ファイルを開かなければいけないINDIRECT関数は使いたくありません。 =INDIRECT("[bbb_"&A1&".xls]Sheet1!B1") ファイルを開かず参照できるように、 できればマクロ(VBA)で組みたいと思っています。 RangeやCellでいろいろ試してみたのですが、 どうもうまくいかず、 分厚いマニュアルにも書いてありませんでした。。 初歩的な質問ですいませんが、 どなたかよろしくお願いします。

  • excelのマクロ

    現在、EXCELで届出書を作っています。 自動マクロでマクロも一部組んでいますが 「参照元のファイルのシートのセルが”男”だったら 別のシートの指定のセルに丸を打つ」という内容をマクロ化したいのですがわかりません。 ご教授いただきたくよろしくお願いいたします。

  • 拡張子「xlm」のファイルについて

    会社のExcelファイルで、拡張子が「xlm」のファイルがありました。Excel4.0というずいぶん古いバージョンのマクロのようですが、 (1)昔はこういうExcel4.0の「xlm」ファイルって、結構使われていたのでしょうか? (2)これのマクロはExcelのシートのセルにだけ書き込まれるものなのでしょうか?というのも、VBE画面でソースコードを見ようにも、VBAモジュールが全くなく、ソースコードらしきものはExcelのシートのセルにしか書かれていないからです。Excel4.0マクロって、VBEにソースコードを書き込むんじゃなく、Excelのシートのセルに命令を全て書いて動かすものなんでしょうか?

  • エクセル2007で複数ファイル間コピーマクロ

    エクセルでマクロを組もうとしていますが、初歩的なことでつまづいており、ぜひ助けを頂けたらと思います。 VBA言語はほとんどわかりませんが、エクセルでマクロを組んでいます。 一つのワークブック内での登録は問題なく行えるのですが、ワークブック間のコピペをマクロに登録するとうまくいかず困っています。 やりたいことは以下のようなことです。 file.Aのsheet1のA1セル ⇒ file.AAのsheet1のA1セル へコピー file.Bのsheet1のA1セル ⇒ file.BBのsheet1のA1セル へコピー     ・     ・     ・     ・ file.Zのsheet1のA1セル ⇒ file.ZZのsheet1のA1セル へコピー VBAを確認すると、ワークブック名が指定されているため、うまく次のファイルに移行できずにいるようです。 以下が黄色でハイライトされます。 Windows("file.A").Activate 初歩的なことだとは思うのですが、なかなか検索で答えが引っ張りだせないので、A-Zのファイルをコピペできるマクロにするにはどのようにしたら可能なのか教えてください。 よろしくお願いします。

  • EXCEL(マクロ機能あり)のコピー

    お世話になります。 現在、マクロ機能のあるEXCELファイルを別のPCへコピーし実行すると 思うような結果が返ってこない。 Sheetが2つあり、 ・Sheet1はDBより取得 ・Sheet2はSheet1を参照し集計 というように構成しています。 自分のPCでは全て問題なく実行できるが、 別のPCではSheet1のデータ取得は実行でき、Sheet2の参照集計ができない。 という点で悩んでいます。 お力添えをお願いいたします。 考えられる問題点は、 1.ファイルの作成時にマクロ機能を別のEXCELファイルよりコピー(ボタンの機能など)し、マクロの登録を行ったので参照がうまくいっていない。 2.マクロのコピーの仕方が正しくない 3.Excelファイルに何か設定をしなければならない(参照設定など) と考え調べていたのですが、解決に至りませんでした。 どなたかご教授をお願いいたします。

  • 異なるファイルのセル値を抽出する

    excel2010 異なるファイルのセル値を抽出する方法を教えてください。 下記に例を示します。 ファイル名:001.xlsm(ファイル名は、任意に変わります。どんなファイル名になるかは分かりません) シート名称:sheet1、sheet2…(複数あり不定です) 抽出したいセルには名前がついています。 sheet1のA4セルのセル名称が _nameAAA の様に。 ファイルによりセルの位置は変わるかもしれませんがセル名称は固定です。 001.xlsmのファイルに新規シート作成し、 あるセルに =_nameAAA とすると、sheet1のA4セルの値を表示してくれます。 抽出したいファイルが下記の様に複数あります。 001.xlsm,002.xlsm,003xlsm… 抽出したいセルの名前は固定で、下記の様にあります。 どのファイルにどのセル名称があるかは分かりません。 _nameAAA _nameAAB _nameAAC というセル名称があった時、 それぞれのファイルに新規シート作成して、セル名参照するのは手間なので、 以下の様にしたいです。 参照.xlsmというファイルを作成し、c:\workに登録します。 中身は sheet1の A1セルに=_nameAAA A2セルに=_nameAAB A3セルに=_nameAAC としておきます。 抽出したいファイルをc:\workにコピーし、参照.xlsmからマクロで セルの値を抽出して表示する様にしたいのです。 マクロ初心者なのでベタを教えていただきたく、よろしくお願いします。

  • Excelのマクロについて

    マクロの保存先を「開いているすべてのブック」にして、 A2~A32をいったん削除した後で、 1月1日から、1月31日を入力して、 最後にA2をアクティブセルにしておく、というマクロを作りました。 1/1と入力すると、普通、1月1日と表示されますよね? 同一ブック、同一シートないでしたら、そのように表示されるのですが、 同一ブック、別シートあるいは、 別ブックで、このマクロを実行すると、 2001/1/1と表示されます。 あとで、セルの表示形式を変えればいいんでしょうが、 この原因が、なぜ、そうなるのかが知りたいです。 (まだ、そのシート内以外だと、マクロが設定できない、 とかの方がわかるんですが。) また、 同一シートでなくても、 1月1日~1月31日の表示形式のままで、 設定できるマクロがあったら、あわせて教えてください。 作成しているファイルの、 バージョンは、Excel2002ですが、 マクロは、2000と変わらないと思うんですが・・・。 よろしくお願いいたします。

  • 別のエクセルファイルの中身を表示する際

    別のエクセルファイルの中身を表示する際の方法について。 経理.xlsのセルに下記のように別ファイルのセルを表示しています。 =[参照元エクセルファイル.xls]Sheet1!$F$2 1個だけでなく100行くらい表示したい。 例 =[参照元エクセルファイル.xls]Sheet1!$F$2 =[参照元エクセルファイル.xls]Sheet1!$F$3 =[参照元エクセルファイル.xls]Sheet1!$F$4 ・・・・ こういう場合に、素人なので、経理.xls開いて「=」を入れて、参照元エクセルファイル.xlsに移って、該当セルをクリックする・・というふうに1個ずつしか処理できません。 簡単な方法はないでしょうか。 #但し、参照元エクセルファイル.xlsでは範囲名は設定できません。(自動的に書き出しされる仕組みのため。)