外部リンクを使用してスプレッドシートを開いたり、VBAを使ってセルをコピーしたりするときに、パフォーマンスが向上するかどうかは疑問です。Excel:外部リンクを使用するとパフォーマンスが向上する可能性がありますか?
私は、Excelだけで同じファイルを開くことがありますが、私は次のコードを使用してテストする際に、外部リンクは速く出てくることを想像:
Dim t As Double
Dim rng As Range
For Each rng In shtId.Range("A1:A5")
t = Now
ThisWorkbook.Names("rngID").RefersToRange = rng
ThisWorkbook.UpdateLink "H:\manualData.xlsx", xlExcelLinks
Debug.Print "link: " & Format(Now - t, "######.0000000")
t = Now
Workbooks.Open "H:\manualData.xlsx", readonly:=True
ActiveWorkbook.Close False
Debug.Print "open: " & Format(Now - t, "######.0000000")
Next
Results:
link: .0000116
open: .0000231
link: .0000116
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347
ワークブックは、ルックアップ数式でセルの範囲を持っていますIDフィールドをキー入力します。これらの数式には外部リンクがあります。それをテストするために、IDを変更して更新を強制します。ファイルオープンアプローチをテストするには、ソースファイルを開いて閉じるだけです。
私は、ネットワーク上で帯域幅が狭いために問題が発生しているプロセスをスピードアップすることを検討しています。私はすでにさまざまなオプションを検討しており、これが有効かどうかを理解したいと思うでしょう。私はこのトピックを検索し、外部リンクがパフォーマンスの問題を引き起こす可能性があると言う人もいます。私は、外部リンクの背後にあるメカニズムをよりよく理解して、実装時に何を期待するのか理解できるようにしたいと考えています。
どのような考えですか?
良い質問です。私は外部リンクではあまり働かないが、単に外部リンクを更新する(つまり、そのコンテンツに直接アクセスする)だけでは、ファイルを開いたり、コンテンツにアクセスしたり、ファイルを閉じるよりも速くなるだろう。しかし、私は、両方のブックが開いているときにリンクを更新する方が速い場合もあることを思い出します。だから、良い質問、あなたのために+1は、他の人がそれについて何を言うのを見ることを切望しています。 –
(1)ScreenUpdatingをfalseで再度測定します。 (2)測定された時間を2または3秒以上駆動するのに十分なデータ量。パフォーマンスの測定値があまりにも多く、あまりにも多くの混乱があり、意味のある比較のために役に立たなくなってしまいます。 –
また、正直言って、私は外部リンクを持つスプレッドシートを「壊れた」スプレッドシートとみなしています。誤った結果が公表されるまでには時間の問題であり、場合によっては致命的な結果が生じる可能性があります。適切なデータ管理をサポートしていない分析ツールの代わりに、適切に管理できるデータベースにデータを格納します。 –