次のサブがあります。このスクリプトにより、一部の情報が 15 秒ごとに固定長のテーブルに書き込まれます。結果はグラフ化され、リアルタイムの動くグラフ感覚を生み出します。
問題は、ワークブックを保存する行のコメントを外すと、タスク マネージャーで、Excel がより多くのメモリ (約 3000 KB) を使用し、それを保持していることに気付きます。最終的に、Excel がメモリ不足になり、クラッシュします。オブジェクトなどを Nothing に設定しようとしましたが、役に立ちません。これはすべてセーブラインによるものですが、その理由はよくわかりません。メモリの問題を保存して回避するにはどうすればよいですか?
Sub Record()
Dim BookValueTable As ListObject: Set BookValueTable = Range("bookvalue_table").ListObject
If Sheets("Orders").LoggingButton.Value And _
BookValueTable.Range(BookValueTable.ListRows.Count + 1, 1) <> Now Then
Dim NewRow As ListRow: Set NewRow = BookValueTable.ListRows.Add(AlwaysInsert:=True)
NewRow.Range(1, 1) = Now
NewRow.Range(1, 2) = Sheets("Orders").Range("total_dollar_pnl")
While BookValueTable.ListRows.Count >= 28800
BookValueTable.ListRows(1).Delete
Wend
ThisWorkbook.RefreshAll
If Hour(Now) = 17 Then
Application.OnTime TimeValue("18:00:00"), "Record"
Else
Application.OnTime Now + TimeValue("00:00:" & 15 - (Second(Now) Mod 15)), "Record"
End If
'Workbooks("Book1.xlsm").Save
End If
Set BookValueTable = Nothing
Set NewRow = Nothing
End Sub