VBA のユーザーフォームで Repaint よりも DoEvents を使用する利点は何ですか? 画面のちらつきなどの煩わしさを最小限に抑えるため、またはフォーム以外の更新が必要な場合は、パフォーマンスのためですか?
VBAの観点からの違いについての明確化を探しています。
一般に、VB6 と VBA は DoEvents を使用して、メッセージ キュー内のメッセージの処理を続行するようにプロセッサに指示します。これは、集中的な処理操作がプロセッサで実行されているときに使用されるため、プログラムの UI は他のすべてのイベントに引き続き応答します。
例: 集中的な検索アルゴリズムを実行しています。DoEvents を追加しなかった場合、検索が完了するまでプログラムがハングアップする可能性があります。一方、DoEvents を (たとえば検索ループに) 追加すると、プログラムはハングアップせず、検索をキャンセルする (キャンセル) などのすべてのプログラム イベントを処理できます。
編集: DoEvents は、UI のちらつき/ハングアップを処理するだけでなく、すべてのイベント タイプを処理するため、Repaint よりも包括的であることがわかります。