DoEvents関数

DoEvents関数はIE(InternetExplorer)の完全読込待機処理で利用される関数です。
ループ処理中にオペレーティングシステムに制御を移し途中で処理を操作できるようにします。

目次

DoEvents関数とは

DoEvents関数は、処理の途中にオペレーティングシステムに制御を移すための関数です。時間のかかる処理やループ処理の場合、処理が完了するまでOS(オペレーティングシステム)は制御を行うことができません。(ループ処理中は、OSやExcelそのものにも再描画をさせる暇さえ与えません。)
そこで、DoEvents関数を利用することで一時的にOS(オペレーティングシステム)に制御を移して、処理を行うことができます。長期のループ処理や無限ループ処理に陥った場合に利用されたりします。ただし、使いすぎると処理は安定しますが、処理時間が長くなってしまうこともあるので注意しましょう。
無限ループ対策で使用すれば、Escキーで回避することができるので、便利な関数でもあります。

DoEvents
構文DoEvents
引数省略説明
なし

DoEvents関数で処理の途中で処理を止める

DoEvents関数を利用して処理の途中で処理を止める。

処理の途中で処理を止めるサンプルコード

こちらのサンプルコードはループ処理中でも処理を止めるマクロになります。


Dim stopFlg As Boolean

Sub Sample()

  For i = 0 To 10000

        DoEvents

        If stopFlg = True Then

            MsgBox "処理を停止しました"

            Exit For

        End If

  Next i

End Sub

'ボタンに「stopBtm」マクロを設定しておく
Sub stopBtm()

	stopFlg = True 

End Sub

実行結果

処理を途中で停止します。

DoEvents処理

解説


Dim stopFlg As Boolean

グローバル変数を宣言します。


For i = 0 To 10000

 DoEvents

(処理)

Next i

こちらはA1セルに0~10000の数字を代入していく処理になります。DoEvents関数を設定していますので、ループ処理でも処理を制御することができます。


If stopFlg = True Then

  MsgBox "処理を停止しました"

  Exit For

End If

こちらはstopFlg変数がTrueになった場合にメッセージボックスを表示させ、処理を停止する処理です。

'ボタンに「stopBtm」マクロを設定しておくSub stopBtm()stopFlg = True End Sub

ボタン停止の確認はこちらをボタンに設定して試してみてください。

利用されているコンテンツ

DoEvents関数は、IE(InternetExplorer)の完全読込待機処理で利用される関数です。ほとんどのコンテンツで利用されていますので、ここでは代表的なコンテンツを紹介します。

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。