- 締切済み
エクセルのリンクについて
複数あるエクセルファイル(1)~(5)の内容を、1つの別のエクセルファイルAで 閲覧のみしたい場合、Aに(1)~(5)のシートをリンク貼り付けしたいのですが、 メモリが不足しているなどのエラーが出てきます。 ファイルの更新はそれぞれの(1)~(5)で行います。 同時に(1)~(5)複数のファイルを開かずに、Aは単純に更新された情報を 反映した内容を表示・閲覧できるようにしたいと考えています。 良い方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Passerby01
- ベストアンサー率34% (30/86)
エクセルファイル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表示してよということでしたら 超絶技巧を要しますし、一個一個開いて閉じてが必要になります 単に更新されたかどうかでしたら、時刻を控えておいてのチェックのみで済みます