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

締切り済みの質問

エクセルのリンクについて

複数あるエクセルファイル(1)~(5)の内容を、1つの別のエクセルファイルAで
閲覧のみしたい場合、Aに(1)~(5)のシートをリンク貼り付けしたいのですが、
メモリが不足しているなどのエラーが出てきます。

ファイルの更新はそれぞれの(1)~(5)で行います。
同時に(1)~(5)複数のファイルを開かずに、Aは単純に更新された情報を
反映した内容を表示・閲覧できるようにしたいと考えています。
良い方法を教えてください。

投稿日時 - 2018-03-20 12:59:34

QNo.9479794

困ってます

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

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

回答(1)

ANo.1

エクセルファイルAに前回の(1)~(5)のシートの最終保存日を記録しておきます。
次に
エクセルファイルAを開いたときに動くマクロ
Private Sub Workbook_Open()
を作ってみましょう
(1)~(5)のシートの各最終保存日と一致するかどうかをチェックするマクロを作っておきますと
一致しないなら「単純に更新された」てことでしょう。

Dim Path As String
'(1)~(5)のシートの場所はどこでしょか?
Path = "C:\Temp"
Dim DataFile As String
'とりあえず1だけね。複数あるならぐるぐる廻してね
DataFile="エクセルファイル(1).xlsx"
'更新日取得
Dim fso As Object
Dim strUpdate As String
Set fso = CreateObject("Scripting.FileSystemObject")
strUpdate = fso.GetFile(Path & DataFile).DateLastModified
'エクセルファイルAシート 1の(1,2)に最終保存日あるとします。適当に変えてね
If Format(strUpdate, "h:mm") = Format(Sheets("Sheet1").Cells(1, 2), "h:mm") Then
Exit Sub
Else
Sheets("Sheet1").Cells(1, 2).Value = Format(strUpdate, "h:mm")
Call 更新されてるから何らかのサブルーチン処理()
End If
Set fso = Nothing
エクセルファイル(1)~(5)の内容が「どこ」が「どのように」変わったかを
抽出して抜き出してエクセルファイルA表示してよということでしたら
超絶技巧を要しますし、一個一個開いて閉じてが必要になります
単に更新されたかどうかでしたら、時刻を控えておいてのチェックのみで済みます

投稿日時 - 2018-03-31 20:37:40

あなたにオススメの質問