Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Excel 2021)
昨日から突然VBA実行で急激にメモリ使用量が増加するようになりました
投稿日時: 24/08/30 19:41:37
投稿者: とろミニ

これまで問題なく実行できていた処理が、昨日の夜から
急にフリーズするようになってしまいました。
タスクマネージャで確認すると、
excel.exeのメモリ使用量が数GBという状態でした。
 
原因調査の為に、いろいろ試したところ、
次のようにしても事象が再現します。
 
@新規エクセルブックを開く。
AVisualBasicエディター画面を開く。
BSheet1モジュールに下記ソースを貼り付け。
'---------------------
Sub test()
  Dim l As Long
  Dim lRow As Long
  For l = 1 To 20
    For lRow = 1 To 6000
      Dim s As String
      s = Sheet1.Cells(lRow, 1).Value
    Next lRow
  Next l
  MsgBox "k"
End Sub
'---------------------
Ctestプロシージャを実行。
 →この時点では問題ありません。
Dブックを名前を付けて保存「新.xlsm」して、ブックを閉じる。
E「新.xlsm」を開く。
AVisualBasicエディター画面を開いて、
 testプロシージャを実行。
 ⇒testプロシージャを実行するたびに
  excel.exeのメモリ使用量が60MB程度ずつ増えていきます。
 
「新.xlsm」を開いた直後⇒70MB程度
testを1回実行後⇒140MB程度
testをもう1回実行後⇒200MB程度
という感じで、どんどんメモリ使用量が増えて行ってしまいます。
 
※エクセルを再インストールしましたが、状況は変わりません。
※マカフィーのリアルタイムスキャンを無効にしても、状況は変わりません。
 
原因や対処方法など、なんでもよいので、教えて頂けないでしょうか。
 
dynabook P1-C7WP-EL
Windows 11 Home 23H2
Microsoft Office Home and Business 2021 - ja-jp

回答
投稿日時: 24/08/30 22:03:51
投稿者: simple

インテルのCPUの不具合の話は聞きますが、デスクトップだったような。
基本的なことを念のため伺います。
なにかイベントプロシージャ(例えばChangeイベントプロシージャ)が動いているという
ことはありませんか?
まったく新しいブックに、そのコードだけを貼り付けて再現するか確認してください。
(通常は標準モジュールに書く内容のような気もします。)
当方で確認しましたが、0.2MB程度は増えますが、60MB増加することはありません。
 
# この投稿から2日程度のうちにはなんらかのコメントをお願いします。完全なものでなくて結構です。

投稿日時: 24/08/31 04:19:36
投稿者: とろミニ

回答ありがとうございます。
 
>まったく新しいブックに、そのコードだけを貼り付けて再現するか確認してください。
 
その状態で再現します。
 
再現の画面操作を動画にしました。
見て頂ければ、今回の事象が分かるかと思います。
https://www.youtube.com/watch?v=c_D7wXMXqGk
 
※端末再起動後に、
 タスクマネージャ、メモ帳、エクスプローラ、SnippingTool.exe
 以外のアプリは起動させずに、動画撮影を開始しています。
※「SnippingTool.exe」(Windows標準ツール)は
 画面操作の動画撮影の為に起動させています。
 (もちろん、普段は起動させていません。)
※画面内に個人情報は映らないように注意していますが、
 もし映ってしまっていたら、見て見ぬふりしてください。
 個人情報などが映らないように
 撮影の際、下記のようにしています。
・エクセルはスタートメニューからではなく
 ショートカットファイルから起動させています。
 (普段はスタートメニューから起動させています。)
・エクセルブックを保存するシーンは画面外で行っています。
 (画面外では名前を付けて保存を行っているだけで
  それ以外の事は行っていません。)
 
すみませんが、よろしくお願いします。

回答
投稿日時: 24/08/31 08:27:20
投稿者: simple

コメントありがとうございました。
VBAのコーディングの問題ではなく、PC環境が原因のような気がします。
私には不明ですので、他の回答者のコメントをお待ちください。
 
【余談】
ちなみに、私のマシンはインテルの10世代のものでしたが、
CPUがメモリーリークを起こしていたようで、
デスクトップウインドウマネージャのメモリーが1GB程度に膨れ上がっており(通常は100MB以下です)
Excel使用中にメモリー不足のエラーが発生しました。
ドライバーを最新のものに更新したところ、今のところ正常動作しています。
つい最近の出来事です。まったく油断がならないですね。

投稿日時: 24/09/01 22:10:46
投稿者: とろミニ

金曜の夜に突然、事象が発生するようになって、
土日と自分でいろいろ試したり、
ネットで手あたり次第見つけた対策をいろいろ試したり。
 
で、とりえあず、解決したようです。
とりあえず、メモリ使用量の増加は発生しなくなりました。
しばらくの間は、本当にこれで解決したのか、様子見の段階ですが・・・。
 
■対応内容
エクセルのオプション>トラストセンター
信頼できる場所に、エクセルファイルの格納フォルダを登録。
 
#先の動画で言うと、
#フォルダ D:\_Work\test を信頼できる場所に登録。
 
そしたら、メモリ使用量の増加は起きなくなりました。
ヾ(≧∇≦*)/やったー
 
トラストセンターに登録していなくても
金曜までは問題なかったのに、なんで急に増加するようになったのかは不明。
そういう意味では、根本原因は別のどこかにあって、
トラストセンターにフォルダ登録は対症療法ということかと思います。
 
私の土日がこれで潰れた○rz
 
#simpleさん、相談に乗って下さり、ありがとうございました。