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 は、必ず指定してください。外すと無限ループに入ってしまうので、注意してください。
関連記事
-
-
カレントフォルダ(CurDir 関数、ChDir ステートメント、ChDrive ステートメント)
カレントフォルダ カレントフォルダとは、ブックを開いたり保存するときに既定で参照 …
-
-
四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)
Round 関数(丸め)の使い方 【書式】 value = Round ( ex …
-
-
VBAの変数宣言
VBAの変数宣言について 変数を暗黙的に宣言する エクセル VBA の場合、明示 …
-
-
配列(宣言・要素数の変更について)
配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …
-
-
文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)
InStr 関数・InStrB 関数の使い方 【書式】 result = { I …
-
-
日付時刻:時・分・秒を取得(Hour、Minute、Second 関数)
日付時刻から時・分・秒を取得する関数 【書式】 time_hour = Hour …
-
-
データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)
TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …
-
-
ショートカットメニュー(CommandBar オブジェクト)
ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …
-
-
文字列:文字列を最後から検索してその最初の文字位置を返す(InStrRev 関数)
InStrRev 関数 任意の文字列の中で、指定した文字列を最後から検索して、見 …
-
-
xlFileFormat 列挙型
xlFileFormat 列挙型 Workbook.SaveAs メソッド の引 …


