という処理のファイル検索の途中でfDoEventsを呼び出しています。, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, 問題発生時に「表示 > 呼び出し履歴(Ctrl + L)」を表示すると、どのような履歴になっているのでしょうか?, 気にかけて頂き、ありがとうございます。 しかし残念ながら、全く再現しなくなってしまい、何もわからない状況となっています。, でしたら、ループ中で毎回発行するのではなく10回に1回とかの割合で発行されるようにした方が良いのではないかと思います。(そもそも処理時間が掛かっている為の回避策に時間の間隔を条件にしてもという気が), 無限ループというより、Doeventsの発行がなされないということは考えられないでしょうか。 AccessのVBAで時間のかかる処理をすると,画面が更新されなかったり,Windowsから(応答なし)扱いされたりします。それをさけるためには,DoEventsを呼び出すのですが,なにも考えずに呼び出すとパフォーマンスが大幅に低下します。 無限ループに陥らないようにするには、どこかのタイミングで条件式を満たさないようにするか、Exit Whileステートメントを使ってループを脱出させるなど、何らかの「停止装置」を組み込む必要があります。無限ループはプログラミングに慣れた人でも時々やってしまうミスです。 Visual Basic. 昨日、id:Infoment さんの「多重ループからの脱出」を読んで、たまに使っているテクニックを思い出したので、紹介するついでに思いつく限りの方法を整理してみた。 infoment.hatenablog.com はじめに 一般的によく見かける多重ループからの(純粋な)脱出方法… 2020-06-14. ループ条件を満たしている間は繰り返す。Do While ループ条件が満たされるまで繰り返す。Do Until 抜け出す条件が適当でない時、無限ループに入り終了できなくなります。 [Esc]キーを押すと、コードの実行が中断できます。 2015.04.10 2018.09.20. For Each In~Next 3. 皆さんは、VBAでループ処理を作るとき、無限ループになってしまったことがありますか? 無限ループになってしまうと、メモリを使いきってExcelが途中で強制終了してデータが消えてしまったり、パソコン自体の操作が遅くなってしまったり、パソコンが固まるときもあります。 自作デスクトップPCの構成 コンパクト・コスパ重視の購入パーツまとめ. 背景:Excelのマクロがloopを含み、長い時間がかかる場合、「応答なし」になる解決手段:ループの中に、DoEvents 関数を入れる例: For i = 1 To 1000(計算) DoEvents Next 備考:1)「応答なし」という表示はWindowsが出している2)DoEvents 関数は、一時的にOSに制御を移す関数3)これによる計算時 … ウィンドウのヘッダーに「応答なし」と表示せずに、実行中として表示されるようにします。 これは、While Trueの無限ループがあるためだと思いますが、これはPySimpleGUIを実行するためです。 ここに私のループのスニペットがあります: 現在は、ループ中でDoevensを呼び出していると思いますが、その処理自体が応答なしの状態では、Doeventsの発行のしようがないと思われます。, ループ開始前にApplication.OnTime メソッド (Excel)によって、定期的に呼び出すようにしてみてはどうでしょう。, 因みに、Doeventsなどのイベント絡みをブレークポイントを設定して動作確認しようとしても、徒労に終わるケースが多いです。 EXCEL VBAでのループ処理は、「For Next ・Do While Loop・Do Until Loop・Do Loop While」など、複数ありますが、ループ処理はある特定な回数や条件が一致した時にループから抜けるのが一般的ですが、ここで紹介する「Exit ForとExit Do」を利用する事で、ループ途中でもループから抜ける事ができま … ループ条件を満たしている間は繰り返す。Do While ループ条件が満たされるまで繰り返す。Do Until 抜け出す条件が適当でない時、無限ループに入り終了できなくなります。 [Esc]キーを押すと、コードの実行が中断できます。 Javaで共通鍵暗号方式「AES」を使用した暗号化と復号化. なんとなく1秒経過したらの処理周りが怪しいようにみえます。 今まで、CUIベースのBASICでのプログラムの経験はあるのですがVisual系のBASICは初心者です。原因はわかっているのでプログラムの修正はできるのですがVB上でコンパイルして実行したときに無限ループに陥ってしまってどうにもプログラム 最近 Excel のマクロで、コードを書いている。1000 行余りのデータに加工を施すものなのだが、1000 回ループさせると結構時間がかかる場合があり、その時は、Excel が応答なしになってしまう。今回は、同じ値が縦に続くセルを結合させて、その他条件に合うセルに色をつけたり高さを変えたり どうも、taka(@takabou63)です(^^♪ さて、VBAでループ処理のコードの中にたまに見かける【DoEvents】という記述を見たことありませんか? 私の今までの記事の中でもDoEvents関数を多く … これだけの情報では何もわかりません。, 2018/01/30 13:38 編集, DoEventsをうまく使うのページに、正解と思われるコードが掲載されています。 Excel VBA マクロの Do Loop 文を使用してループする方法を紹介します。条件が True の間ループする While と、True になるまでループする Until の 2 種類があります。Exit Do でループを抜けたり、Continue のように次のループへ飛ばせます。 エクセル2010でタイマーを作って作動させるとかならず応答なしになります。Sleepも使ったのですが応答なしになりました。そうなった理由をできれば教えてください。よろしくお願いしますマクロSub macro()Dim EndTime As LongDi フォルダ内のファイルを全て検索し、 VBAで正の無限大・負の無限大を取得する方法のメモです。 はじめに. 備忘録と自信の知識向上の為記事を書いていこうと思います。. 数万回のループならGetInputStateやTimerでの時間計測を入れることで劇的に処理速度が向上しますが、特定フォルダ内のファイル走査程度の繰り返し回数であれば、体感速度としてはそれほど変わらないと思われます。 3 / クリップ

æ¬¡ã ®ä¾ ã §ã ¯ã myNum ã «ã ¯ç ¡é ã «ã ¼ã ã ä½ æ ã ã å ¤ã ä»£å ¥ã ã ã ¦ã ã ¾ã ã In the following example myNum is assigned a value that creates an endless loop. Do Whileステートメントは、「条件を満たしている間」同じ処理を行うステートメントです。繰り返し処理という点ではFor〜Nextステートメントと同じ繰り返し処理を行いますが、形式が若干違います。今回はDo Whileステートメントについて学んでいきましょう! 業務用アプリでは二度押し防止策等で動作中各種ボタンを非活性にする等することが多いですが、やはりすべての副作用的要素が取り除けない為、出来れば最終手段としたいものです。, 次にWin32APIの使用で、描画系のメッセージのみ処理する方法があります。 teratailを一緒に作りたいエンジニア, 時間がかかっている為の回避策ではなく、時間がかかって「応答停止」になるのを回避する為、という対処としています。, dir()ではなく、FileSystemObjectを使用し、インスタンスを生成することで同期処理となり、Doeventsは不要になると思われますが。, 逆説的に、Doeventsを使用されているということなので非同期処理として扱われているのだろう程度です。, fDoEvents が Public で、prDoEvents はPrivate です。, '★稀に、DoEvents実行直後に「prDoEvent」が呼ばれ、再帰的に呼ばれ続けてしまう, https://msdn.microsoft.com/ja-jp/vba/language-reference-vba/articles/timer-function?f=255&MSPPError=-2147217396. プログラムが同じ処理を繰り返してしまい、永久に処理が終わらない状況に陥ってしまうことがあります。 このような状況・状態を「無限ループ … なぜかっていうと、実行したら、フリーズしてしまった!とか 無限ループに入っていつまでも返ってこない!とか 大事なデータを消してしまった!なんてことがあるかもしれないので、忘れずに保存。 「★」の箇所で再帰的に関数が呼ばれるようになってしまいます。。。, 処理としては、あるフォルダの容量を知る為に、 今回はVBAユーザー必見、応答なしになったExcelでVBAを確実に中断させる方法(仮称:ちゅんちゅん奥義)を紹介します。 皆さんはVBA或いはマクロの実行中に、無限ループを起こしてしまい中断できないので「泣く泣くExcelを強制終了させた」なんて経験はありませんか? (DoEventsより副作用は抑えられるはずですが・・・), ここからが本題ですね。 >> Excel VBA 基礎の基礎(1) 11-01 無限ループの解除方法. 新着記事. BackgroundWorkerを使用することで手軽にマルチスレッド処理が実現できます。 excel2003からexcel2010に切り替えたがマクロ付きブックは2003形式(xls)のまま、互換モードで処理をさせようとしています。 しかし、マクロの処理中に、「応答なし」になったりして結果が得られたり、得られなかったりします。ひどいのになるとEXCELがハングアップ して、再起動したりします。 まず思いつくのが … 年末年始休業につき下記の期間、お問い合わせ等のサポート業務をお休みいたします。 ループ処理で調子よく動いているように見えてもフォームをクリックとかしたら途端に『応答なし』になったりしますよね。 『応答なし』の回避策あれこれ Application.DoEventsをコール. エクセルマクロで大量データを処理すると、マクロの処理が遅かったり、重くなってしまったりします。 たとえば、1000行を超えるデータを扱うとなると、処理に10分以上かかってしまうこともあります。 この記事では、エクセルマクロのプログラムを高速で処理する方法を紹介します。 1 VBA SendMessage 無限ループにどうして無限ループになるんですか 2 VB6(SP5) 無限ループ 3 無限ループでDebug.Writelineしてしまい、VB2005が応用しません(>_<) 4 Visual Basic 2008 で複数のうちのいずれかのイベントが発生した時のプログラムの実行方法について、 For分の途中で「fDoEvents」をCallしており、 ExcelVBAを1から学ぶ! #7 ~配列とは?~ そうすると中断する旨のメッセージとともに、VBAの無限ループを中断することができ … ExcelなどのVBAで繰り返し処理など長時間実行をする処理を実行したときに、応答がなくホワイトアウトした状態になってしまって、Escキーを押しても反応せず困った経験はないでしょうか。 こんな状態です。 今回はそんなときに対処する方法をご紹介したいと思います。 Pythonのwhile文によるループ(繰り返し)処理について説明する。リストなどのイテラブルの要素を順次取り出して処理するfor文とは異なり、条件が真Trueである間はずっとブロック内の処理を繰り返す。8. 実は1ms間隔になっていないですか?, GetInputStateはキー入力などのイベントが発生すると0以外の値を返す(つまりTRUE条件に入る)ようです。, fDoEventsがループ処理により絶え間なく呼ばれ続けている場合、Timer判定では1秒以上の間隔をあけてprDoEventsを呼び出していますが、GetInputState判定の方は連続してイベントが発生すれば1秒以内でもprDoEventsを繰り返し呼ぶことになりそうです。 投稿 2018/01/29 17:24 ご連絡頂ければ何か糸口が見つかるかもしれません。, 下記がDoEvents用のモジュールで、 まず思いつくのが … 0, 回答 Excel VBA マクロの DoEvents 関数を紹介します。DoEvents 関数は、プログラムが占有している制御をオペレーティングシステムに返します。時間のかかる処理で応答しないプログラムを応答させるときに … 2020/12/29〜2021/1/3 おそらく応答なしになるのは「寸法書作成」のwhile文だと思います。 ループの中で変数rowがインクリメントされていませんので、無限ループになるのではないでしょうか? ※レジストリの設定にもよりますが、現在主要Windows7以降の標準では5秒が標準となります。, 主にシングルスレッドで重い処理(メソッド内で時間のかかる処理をしたりDBから大量のデータを取得等々)した時におこります。ループ処理で調子よく動いているように見えてもフォームをクリックとかしたら途端に『応答なし』になったりしますよね。, まず思いつくのが「DoEvents」。 では、「応答なし」になってしまった、エクセルが動かない状態になってしまった時は何をすればいいのでしょうか?対処方法を確認していきましょう。 対処法「エクセルの動作を止める」 VBAの組み込み型の一つのDouble データ型は、通常のVBAの操作の範囲内では、有限の小数しか扱うことができません。. エクセルvbaの実行速度が遅い・重いって時ありませんか?そんな時にエクセルvbaのプログラムの処理速度を速くするテクニックを紹介します。プログラムの実行時間を測定する方法も合わせてお伝えします。 ループの種類は大きく分けて、以下の3つです。 1. こちらのコードを使ってみては如何ですか?, 本当にprDoEventが再呼び出しされているのなら、処理中フラグを設けてやって、, 無限ループにはまる原因は思い当たりませんが、Call fDoEventsの部分を純粋なDoEventsにしてしまえば良いのでは? 0, 回答 想定外に速い間隔で何回も呼ばれるということでしょうか。 応答なしを回避するにはループを以下の様に変更します。 For n = 1 To 100000 Cells(1, 1) = n DoEvents Next n DoEventsというコードを追加していますが、これが上で説明したWindowsの動作確認に返事をするコードだと思ってください。 Excelの「応答なし」が出た時の対処法. 2014.01.12 2018.09.20. 2 / クリップ VBAで純粋な無限ループとして実装することはほとんど無いですが、2重のForを抜けたりするときなど、限られた場面では使用機会があります。 無限ループの止め方. エクセルvbaの実行速度が遅い・重いって時ありませんか?そんな時にエクセルvbaのプログラムの処理速度を速くするテクニックを紹介します。プログラムの実行時間を測定する方法も合わせてお伝えしま … VBAのForNextは、同じ処理を繰り返し行うためのVBA構文です。繰り返し処理はループ処理とも呼ばれます。マクロでのループ処理の記述は何通りかありますが、まず最初に覚えるべきものが、今回説明す … 皆さんは、VBAでDoEnents関数を使って処理をキャンセルする方法を知っていますか? キャンセルボタンなどを実装するときなど、処理の途中で止めたいケースはありますよね。そこで今回は、DoEvents関数の基礎的な使い方といった基礎的なことから、 サンプルコードを使った具体的な使い方 ループ処理はCPUへの負荷が強く、 大量なループ処理や無限ループではExcelが応答なしの状態になり、描画処理も停止する ため、いわゆるフリーズしたように見える状態になります. どのような意図で作ったコードなのか、どのように動作するコードなのかといった判り易い説明がされているので、参考になると思います。 0, 【サポート業務のお知らせ】 各ファイル容量を基にフォルダ容量を計算する、 今回はVBAユーザー必見、応答なしになったExcelでVBAを確実に中断させる方法(仮称:ちゅんちゅん奥義)を紹介します。 皆さんはVBA或いはマクロの実行中に、無限ループを起こしてしまい中断できないので「泣く泣くExcelを強制終了させた」なんて経験はありませんか? ExcelなどのVBAで繰り返し処理など長時間実行をする処理を実行したときに、応答がなくホワイトアウトした状態になってしまって、Escキーを押しても反応せず困った経験はないでしょうか。 こんな状態です。 今回はそんなときに対処する方法をご紹介したいと思います。 こうしてしまえば無限ループにハマる余地はなくなります。 For~Next 2. 差が1(秒)を超えていたらという判定文なのに、型がdoubleなのは正しいですか? ん?応答なしと表示されてるが、excel.exeがCPUを使用している・・・。動いているね?これ。 ひょっとしてと思いネットを探ってみると、やはり、EXCELで重いマクロを動かすと表面上「応答なし」となるようだ。 これを回避する方法として、重たいループの中に By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. メッセージによって呼び出されているのでしょうか? しかも、エラーと同時に、Excelが【応答なし】となりExcelを再起動・・・。まともにデバッグができません。応答なしになった瞬間、VBE(ソースコードを打つウィンドウ)も仲良く落ちる! 非常に困りますよね。私も同じ現象で1日無駄にした事があります。 Excel VBA Tips 何か、すごく時間のかかるループを実行すると、処理が終わるまでCPUの使用率が100%近くになることがあります。 Sub Sample1() Dim buf As String Const LogFile As String = "C:\log\ex090310.log" Open LogFile For Input As #1 Do Until EOF(1) Line Input #1, buf Debug.Print buf Loop Close #1 End Sub なぜなら、ブレークポイントを設定すること自体でイベント消化が行われ、発生している事象の再現にはならないからです。, あるフォルダの容量を知る為に、フォルダ内のファイルを全て検索し、各ファイル容量を基にフォルダ容量を計算する, というのがどのようなコマンドで行われているのかは不明ですが、非同期処理であるが為に、Doeventsを行っているんだと思います。 Help us understand the problem. 2013.07.29 2018.09.20. EXCEL VBAでのループ処理は、「For Next ・Do While Loop・Do Until Loop・Do Loop While」など、複数ありますが、ループ処理はある特定な回数や条件が一致した時にループから抜けるのが一般的ですが、ここで紹介する「Exit ForとExit Do」を利用する事で、ループ途中でもループから抜ける事ができます。 私の環境ではループ処理でfDoEventsを呼び続けている最中にExcelシート上でセル編集モードに入ると、その時点でもともと動いていたマクロは中断してしまい、あまりアレコレ操作できませんでした(^_^; VBA と VB.NET は別物です。どちらかのタグを外してください。見たところ VB.NET ではないですか?, DoEvents が Application.DoEvents ならここで無限ループはおかしいです。 あと、 While Worksheets(1).Cells(20, row) <> "" '20列目は「画層」 ループ処理で調子よく動いているように見えてもフォームをクリックとかしたら途端に『応答なし』になったりしますよね。 『応答なし』の回避策あれこれ Application.DoEventsをコール. 私はデバッガをステップバイステップで実行していますが、すべてがうまくいくように見えたら、私はそれを再生させます。 しかし、それは無限ループで実行されています、そして今、私は休憩キーなしでそれを止める方法がないことを認識しています! プログラムが同じ処理を繰り返してしまい、永久に処理が終わらない状況に陥ってしまうことがあります。 このような状況・状態を「無限ループ … Excel VBA マクロの Do Loop 文を使用してループする方法を紹介します。条件が True の間ループする While と、True になるまでループする Until の 2 種類があります。Exit Do でループを抜けたり、Continue のように次のループへ飛ばせます。 背景:Excelのマクロがloopを含み、長い時間がかかる場合、「応答なし」になる解決手段:ループの中に、DoEvents 関数を入れる例: For i = 1 To 1000(計算) DoEvents Next 備考:1)「応答なし」という表示はWindowsが出している2)DoEvents 関数は、一時的にOSに制御を移す関数3)これによる計算 … というより無限ループに入った時点でプログラムが応答なしになり固まって終了します。 しかし、無限ループを使う処理(たとえば、ゲームの描画など)の場合は、他の処理を行えるようにApplication.DoEvents関数を入れます。すると応答なしにはなりません。 そもそもVBAは基本的にマルチスレッドもできませんし、割り込み処理が苦手なとこありますよね。。 excel2003からexcel2010に切り替えたがマクロ付きブックは2003形式(xls)のまま、互換モードで処理をさせようとしています。 しかし、マクロの処理中に、「応答なし」になったりして結果が得られたり、得られなかったりします。ひどいのになるとEXCELがハングアップ して、再起動したりします。 Excel VBA マクロの DoEvents 関数を紹介します。DoEvents 関数は、プログラムが占有している制御をオペレーティングシステムに返します。時間のかかる処理で応答しないプログラムを応答させるときに … Do~Loop 3つのループをそれぞれSampleコードでご説明します。 基本的には上の2つを覚えたら大抵の処理には対応出来ます。 ループ処理はCPUへの負荷が強く、 大量なループ処理や無限ループではExcelが応答なしの状態になり、描画処理も停止する ため、いわゆるフリーズしたように見える状態になります. VBAでループ処理を実行したときに、処理が返ってこずExcelごと固まってしまうことがあります。 その場合の対処方法を書きます。 Ctrl + Breakキー(またはCtrl + Pauseキー) 固まっているVBAの画 … それが原因で周回遅れのprDoEventsがDoEvents後に発生するなんてことが・・・あるのかどうか。. 1 / クリップ 注意点としてはワーカースレッドからコントロール等スレッドセーフでないものに直接アクセスしないことでしょうか。処理の中でコントロールへアクセスする必要がある場合、Invokeを用いるか、BackgroundWorkerのProgressChanged・RunWorkerCompletedイベントのようなメインスレッドで実行される部分でする必要があります。, BackgroundWorker等別スレッドで実行する際もDoEvents同様各ボタンの非活性等で同時実行を制御する必要があることに気を付けてください。, 次のステップとして、Task(Async/Await)がありますが、長くなっているので次回に(。-`ω-)b, しがないVB.Net使いです。 無限ループを止めるにはPauseメソッドを用いる方法とKillメソッドを用いる方法があります。 が、結果的にDoEvents同様各ボタンの非活性化などが必要になります。 もちろん、検索対象フォルダ内のファイル数が何千、何万もあるようなケースであれば別ですが。。。, 他のブックを開いてセル内の文字列を取得し、 取得した文字列を含むブックを検索したい, VBAのプログラミングコードの使いまわし(1つのプログラムコード内で何度も同じ内容を使う), 回答 処理開始から終了まで一定時間描画系のWindowsメッセージ(WM_PAINT等)が処理されないと『応答なし』が表示されます。 そして、無限ループやエラーが仮に発生しても、容易にメンテナンスが可能なコードの記述を常に心がけていただきたいと思います。 私たちは、全ての エンジニアに市場価値を高め自身の望む理想のキャリア を歩んでいただきたいと考えています。 無限ループ というやつです。 無限ループが発動すると、 Excelの操作ができなくなり、 そのままほっとくと、 Excelが応答なし(フリーズ)になります。 Excelが応答なしになったら、パソコンの 電源を切る か、 タスクマネージャーで強制終了 させるかですね。 VBAの無限ループでExcelごと固まった時の対処法 . 便利な反面メッセージキューにある全てのWindowsメッセージが処理されるため、思いがけない動作をする可能性があります。 無限ループ というやつです。 無限ループが発動すると、 Excelの操作ができなくなり、 そのままほっとくと、 Excelが応答なし(フリーズ)になります。 Excelが応答なしになったら、パソコンの 電源を切る か、 タスクマネージャーで強制終了 させるかですね。 ・編集 2018/01/30 14:16, 処理が長くなるFor文で、Excelが固まらないよう、途中で定期的にDoEventsをさせてるのですが、 エクセルVBAのDoEvents関数についての解説。VBAによるIE(Internet Explorer)制御やデータ取得など基本的なものから実践向けの内容まで幅広くカバーした入門サイト。 この事例においては関数にするほどのものではないように思えます。 皆さんは、VBAでDoEnents関数を使って処理をキャンセルする方法を知っていますか? キャンセルボタンなどを実装するときなど、処理の途中で止めたいケースはありますよね。そこで今回は、DoEvents関数の基礎的な使い方といった基礎的なことから、 サンプルコードを使った具体的な使い方 VBAでループ処理を実行したときに、処理が返ってこずExcelごと固まってしまうことがあります。 その場合の対処方法を書きます。 Ctrl + Breakキー(またはCtrl + Pauseキー) 固まっているVBAの画 … また無限ループという言葉も、ループ処理から抜け出せないことを指すので、これも当てはまらないと思います。 これを繰り返すうちにDoEventsが追い付かなくなるなんてことは・・・あるのかどうか。 DoEvents関数 DoEvents関数はVBAの処理を一時中断させてExcelの操作を行うことができるようになります。 通常、VBAの処理中はExcelの操作は出来ません。しかし、DoEvents関数を使うとVBAの …

æ¬¡ã ®ä¾ ã §ã ¯ã myNum ã «ã ¯ç ¡é ã «ã ¼ã ã ä½ æ ã ã å ¤ã ä»£å ¥ã ã ã ¦ã ã ¾ã ã In the following example myNum is assigned a value that creates an endless loop. 期間中もサポートへのお問い合わせは承りますが、返信は2021/1/4以降となります。, 【募集】 vbaで多重ループから脱出する方法の全て VBA 昨日、id:Infoment さんの「多重ループからの脱出」を読んで、たまに使っているテクニックを思い出したので、紹介するついでに思いつく限りの方法を整理し … おそらく応答なしになるのは「寸法書作成」のwhile文だと思います。 ループの中で変数rowがインクリメントされていませんので、無限ループになるのではないでしょうか? Timerというのはなんでしょうか?秒数が入っているのでしょうか? >> Excel VBA 基礎の基礎(1) 11-01 無限ループの解除方法. しかし、Double型はVBA独自の表現では無く、他のプログラミング言語で使われている倍精度浮動小数点数と … この処理を同期型の処理に置き換えるのも別解になるかと。, 2018/01/30 15:24 編集, 2018/01/30 17:02 編集, プログラムにおいて再帰というのは自身の関数を呼び出すことを言うので、この場合は当てはまらないと思います。 生産性向上のための環境整備に関する記事を書いて、ThinkPad P14sをゲットしよう!, you can read useful information later efficiently. VB.NETのFor文でループを続ける・抜ける構文. 稀に、DoEventsが暴走し、説明しにくいのですが無限ループ的になってしまいます。, 同じ状況を経験した、という方がいらっしゃれば、 それとも自作関数なのでしょうか?, 無限ループと無限再帰は別物です。無限ループは終わりませんが、無限再帰はスタックオーバーフローですぐ終わります。, 全体的に問題の前提とデバッグ方法が間違っていてコードも足りません。 エクセルマクロで大量データを処理すると、マクロの処理が遅かったり、重くなってしまったりします。 たとえば、1000行を超えるデータを扱うとなると、処理に10分以上かかってしまうこともあります。 この記事では、エクセルマクロのプログラムを高速で処理する方法を紹介します。 あと、 While Worksheets(1).Cells(20, row) <> "" '20列目は「画層」 What is going on with this article? Why not register and get more from Qiita? 無限ループというより、Doeventsの発行がなされないということは考えられないでしょうか。 現在は、ループ中でDoevensを呼び出していると思いますが、その処理自体が応答なしの状態では、Doeventsの発行のしようがないと思われます。 ん?応答なしと表示されてるが、excel.exeがCPUを使用している・・・。動いているね?これ。 ひょっとしてと思いネットを探ってみると、やはり、EXCELで重いマクロを動かすと表面上「応答なし」となるようだ。 これを回避する方法として、重たいループの中に