プロが教えるわが家の防犯対策術!

こんにちは。環境:WinNT4.0、エクセル97

二つのエクセルブックがあります。(AとB)
Aは個人のデータが記入されています。このAは個人個人のデータのため
実際には複数存在します。(A1、A2・・・)
Bはこの個々のブックを集計したものになるため、Bを直接開くことはありません。
実際にAのみにデータを追加していって、それをBに反映させることは
できるのでしょうか?

以上、お願いします。

A 回答 (3件)

簡単にブックBのSheet1のA1に、ブックAのSheet1のA1を表示させる場合、ブックAとブックBを両方開き、ブックBのA1で=を入力し、アクティブ画面ををブックAに切替え(ウィンドウで)ブックAのA1を左クリックします。

ブックBのA1は”=[A.xls]Sheet1!$A$1”となるはずです。この後、A2以下からA10まで追加が予想されるとしたら、A1の計算式の行番号1の前の$を外し($A1の形)、A10までオートフィルを使ってコピーします。このあと先にブックAを閉じると計算式が'C\Winnt\Profiles\xxxxxx\デスクトップ\[A.xls]sheet1!A1'となるのを確認できると思います(ブックAがデスクトップに保存されているとした場合)。これでリンクは確立できたのでブックBを閉じ保存します。ブックAのA2以降にデータを追加した後保存し、ブックBを開けば確認できると思います。このときブックBを開く際、他にリンクされているうんぬんのメッセージが出るので、これを反映させる方を選択します。そうしないと意味がありません。あとブックAも新規に作成する場合は、必ずブックAから先に保存してください。
    • good
    • 0
この回答へのお礼

> ブックBのA1で=を入力し、アクティブ画面ををブックAに切替え(ウィンドウで)ブックAのA1を左クリックします。ブックBのA1は”=[A.xls]Sheet1!$A$1”となるはずです。

それがなりませんでした。=を入力後、アクティブ画面をAに切り替えてA1セルを
選択して、Bに戻しても=以降なにも表示されません。シート間の場合はそれでいけるのですが、Book間だとうまくいきません。

回答ありがとうございます。

お礼日時:2001/11/27 15:26

VBAでイベントプロシージャーを使用して、AのデータシートをBの然るべきシートにコピーするようにすれば良いと思います。



Private Sub Workbook_BeforeClose()
Sheets("Aのデータ").Cells.Select
Selection.Copy
Workbooks.Open Tinename:="B.xls"
Sheets("Aデータ貼付先").Cells.Select
ActiveSheet.Paste
WorkBooks("B.xls").Close SaveChanges:=True
End Sub


動作確認していませんが、Excel97だと上記のような形となると思います。
    • good
    • 0
この回答へのお礼

上記のやりかただとBを開けなければならず、ちょっと違うんです。
Bを開けてやるなら上記でOKだと思います。

回答ありがとうございます。

お礼日時:2001/11/27 15:32

> ブックBのA1で=を入力し、アクティブ画面ををブックAに切替え(ウィンドウで)ブックAのA1を左クリックします。

ブックBのA1は”=[A.xls]Sheet1!$A$1”となるはずです。

私はこれが可能でしたよ。但し表示は、=[A]Sheet1!$A$1 でしたけど。
同じ環境:WinNT4.0、エクセル97 です

また、そのまま、=[A]Sheet1!$A$1というように打ち込んでもOKでした。

ちょっと謎です。
    • good
    • 0
この回答へのお礼

すいません、わかりました。
ウインドウ自体が複数になっていました。
2000とかだとファイルを開くごとにウインドウ(下のバー)が
増えていきますよね?
NT(エクセル97のほう?)の場合は、メニューバーのウインドウの中に
追加されていくだけなんですよね。
おっしゃっていた方法はこっちのやり方みたいですね。

確かにその方法でできました。
ありがとうございました。

お礼日時:2001/11/28 10:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!