こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2011-11-02 15:15:55

QNo.7108759

困ってます

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

エクセルの数式では,
='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

投稿日時 - 2011-11-02 16:07:44

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

マクロ(VBA)の話しで良いですか?(^^)

Excel は 別のファイル(ブック)が開いてあれば、参照する事が出来ます。
例えば、ブックA に書いてあるマクロ(VBA)から ブックB の シート1 を参照するなら、
ブックA上で

 Workbooks.Open("ブックB")
 Workbooks("ブックB").Worksheets("シート1") ~

という使い方が出来ます。
当然、終了時は ブックA と同時に ブックB も閉じる必要があります。

投稿日時 - 2011-11-02 15:37:14

ANo.1

参照したいエクセルを開き、参照元のセルに=(イコール)を入れ
参照したいエクセルの参照したいセルを選択してエンターを押せばできます。
※作業は基本的に同じエクセルの参照と同じで別ファイルを選択するだけです。

参照したエクセルを開いている時はエクセルのファイル名から表示され
=[AAA.xls]Sheet1'!$A$1
参照したエクセル閉じた時はエクセルのファイルの場所から表示されます
='C:¥▲▲▲¥×××¥□□□¥[AAA.xls]Sheet1'!$A$1

投稿日時 - 2011-11-02 15:35:33

あなたにオススメの質問