質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

2566閲覧

Excelにラベルを追加してVBAで繰り返し値をセットしたところ、メモリ不足のエラー発生

dam9806

総合スコア21

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/10/13 16:46

Excel VBAでIEを操作しています。

これまでずっと安定的に動いてきたのですが、
ラベルとテキストボックスのコントロール(ActiveX)を追加して、ループ処理中に処理状況をそれぞれのコントロールに表示するよう対応したところ、処理開始から数十分後に「メモリ不足です。完全に表示できません。」のメッセージが表示されるようになりました。

VBEにて、以下のようなラベルへの値の代入文で、上記メッセージが発生することを確認しました。
Label1.Caption = ""

ちなみに、ラベルへの代入文(Label1.Caption = "実行中" など)が、ループ中の別の場所にもいくつかあります。
ループ中にラベルの値を繰り返し変更することが、何らかの問題を起こしていると思われますが、よく分かりません。

メモリについてタスクマネージャーを確認したところ、Excelの使用状況は特に問題なさそうです。
全体としても逼迫している状況ではありません。

Officeの更新プログラムを適用後に再実行しましたが、状況は変わらずです。

良策がありましたら教えてください。
もしExcelの再インストールなど面倒な作業が必要な場合は、コントロールを削除して元に戻します。

実行環境:Excel2016, Win10Pro 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ループ中にはDoEventsが適切に入っていますか?
入っていなければ入れるようにしてみてください。

投稿2018/10/15 00:10

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dam9806

2018/10/15 02:31

回答ありがとうございます。 DoEventsは入っています。
ttyp03

2018/10/15 02:54

そうですか。 ただ、やはりエラーが起きるということは何かしらの処理に無理があると思うので、見せられる範囲でコードを提示していただいたほうが解決は早いかと思います。
guest

0

ベストアンサー

このサイトの「VBAメモリーリークについて」の記事が関連ありそうです。

VBA

1Set Label1 = nothing

のコードを適切な行に入れてみてはどうでしょうか。

投稿2018/10/14 01:36

seastar3

総合スコア2285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dam9806

2018/10/14 02:38

回答ありがとうございます! ループ中にご提示のコードを入れて実行したところ、このコードは問題なく処理されますが、後続のLabel1への代入文でオブジェクト変数が設定されていない旨のエラーとなります。 このコードを入れるということは、 ループ中にオブジェクト(ラベルコントロール)を再作成することを想定されてのことでしょうか?
seastar3

2018/10/14 02:53

確かにそうですね。未検証の提案をして申し訳ありません。 また、思いつきの提案ですが、 Label1.Caption = null とか、 Set Label1 = nothing とともに、 毎回、Label1オブジェクトの生成と位置決めとCaption代入を初期設定する操作をすると対応になるのではないでしょうか。大仰な対応ではあります。
dam9806

2018/10/14 03:07

Label1.Caption = nullについては「型が一致しません」のエラーとなりました。 やはり、オブジェクトの再作成が必要かもしれません。 パフォーマンスへの影響が懸念されますが、検討します。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問