CPU に制御を移す(DoEvents 関数)
DoEvents 関数
DoEvents 関数を実行すると、CPU に制御を移し、他のアプリケーションが実行できるようになります。
DoEvents
DoEvents 関数 使用例
ユーザーフォーム
ユーザーフォームを挿入し(UserForm1)、ラベル(Label1)1つとコマンドボタン(CommandButton1、CommandButton2)2つを追加します。
サンプルVBAソース
1 2 3 4 5 6 7 |
Sub Sample_DoEvents() UserForm1.Show End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
Private i As Long Private myTimer As Boolean '「START」ボタンをクリックした時の処理 Private Sub CommandButton1_Click() myTimer = True Call Sample_Timer End Sub '「STOP」ボタンをクリックした時の処理 Private Sub CommandButton2_Click() myTimer = False End Sub 'UserForm1 を表示した時の処理 Private Sub UserForm_Initialize() 'Label1 に「0 回」を表示 UserForm1.Label1.Caption = "0 回" 'CommandButton1 に「START」を表示 UserForm1.CommandButton1.Caption = "START" 'CommandButton2 に「STOP」を表示 UserForm1.CommandButton2.Caption = "STOP" End Sub 'Label1 に 回数を表示します Sub Sample_Timer() Do While myTimer = True i = i + 1 Label1.Caption = i & " 回" DoEvents Loop End Sub |
実行結果
「標準モジュール」の Sample_DoEvents を実行
「START」(CommandButton1)をクリック、その後「STOP」(CommandButton2)をクリック
上記のサンプルで、DoEvents は、必ず指定してください。外すと無限ループに入ってしまうので、注意してください。
関連記事
-
-
文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)
LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …
-
-
セルのデータを区切り文字で複数のセルに分割する(TextToColumns メソッド)
TextToColumns メソッド TextToColumns メソッドを使用 …
-
-
変数のデータ型・宣言(Dim ステートメント)
変数の宣言 一般的な方法 【書式】 Dim varname [ As type, …
-
-
連想配列(Dictionary オブジェクト)
連想配列 連想配列とは、添字(キー)に文字列を使用することができる配列です。 V …
-
-
ユーザー定義関数:セルを取得する(ThisCell プロパティ)
入力されたセルを取得する ワークシート上で使用する Function プロシージ …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
対象のオブジェクトをクリアする(Clear メソッド)
Clear メソッド 対象となるオブジェクト全体をクリアします。Range オブ …
-
-
変数が日付型かどうかをチェックする( IsDate 関数 )
IsDate 関数の使い方 【書式】 result = IsDate( expr …
-
-
ある数値が、複数の範囲のどの範囲に含まれるかを示す文字列を返す(Partition 関数)
Partition 関数 の使い方 Partition 関数は、ある数値が、区切 …
-
-
変数がNull 値かどうかをチェックする( IsNull 関数 )
IsNull 関数の使い方 【書式】 result = IsNull ( exp …