
No.6ベストアンサー
- 回答日時:
#2と#4のtinu2000です。
stop_flag を共通変数にしないと、それぞれ別の変数とみなします。
ここから下をコピー&ペーストして見て下さい。
Public stop_flag As String
Private Sub CommandButton1_Click()
Dim i As Integer, n As Integer, b As Integer, a As Integer
stop_flag = False
Do
a = 1
For i = 0 To 7
Range("a1") = a
For n = 0 To 500
Next n
a = a + 1
Next i
a = 2
For b = 0 To 7
Range("b1") = a
For n = 0 To 500
Next n
a = a * 2
Next b
DoEvents
If stop_flag = True Then Exit Do
Loop
End Sub
Private Sub CommandButton2_Click()
stop_flag = True
End Sub
この回答への補足
回答有難うございました。とりあえずLoop地獄から出ることが出来ました。有難うございました。ただMovingWalk様のところにも書いたのですが、Loopが終わらないと出ない・・。STOPButtonを押したらその場でLoopから出るようにするにはどのようにすればいいのでしょうか?すみませんがよろしくお願いします。
補足日時:2003/10/08 20:55No.5
- 回答日時:
#1です。
#2の補足について。If stop_flag = False Then Exit Do ではなく
If stop_flag = true Then Exit Do でなければ...
念のため、DO の前の行に stop_flag = False をいれておいてください。
この回答への補足
回答有難うございます。とりあえずLoopから出ることが出来ました。有難うございました。ただ、STOPButtonを押せば直ぐに止まらずにLoopから出ないと止まらないんですね・・。(考えてみれば当たり前ですが・・)押したら直ぐにLoopから出られる(Loopする数字が押した瞬間に止まる)ようになるにはどのようにしたらいいのでしょうか?すみませんがよろしくお願いします。
補足日時:2003/10/08 20:47No.4
- 回答日時:
#2のtinu2000 です。
maruru01さん、そうでしたそうでした、DoEvents を忘れていました。
質問を見て、瞬間的なイメージは DoEvents はあったんですが、
書いている内に忘れてしまいました。(汗)
maruru01さん、ありがとうございました。
あれではストップボタンが割り込まないですね。
No.3
- 回答日時:
こんにちは。
maruru01です。基本的には、No.2の方のように、フラグを立てる方法です。
ただ、ストップボタンをクリックする割り込み処理を入れるために、DoEventsを入れます。
No.2の方のを拝借して、
Private Sub Command1_Click() 'スタートボタン
ExitSw = 0
Do
DoEvents
・・・
If ExitSw = 1 Then Exit Do
・・・
Loop
・・・
End Sub
Private Sub Command2_Click() 'ストップボタン
ExitSw = 1
End Sub
この回答への補足
回答有難うございます。ただ全然初心者なのでまだ出来ません・・。tinu2000様の補足に抜けられないプログラムを出したのですが、わかりません。すみませんよろしくお願いします。
補足日時:2003/10/07 22:41No.2
- 回答日時:
Private Sub Command1_Click() 'スタートボタン
ExitSw = 0
Do
・・・
If ExitSw = 1 Then Exit Do
・・・
Loop
・・・
End Sub
Private Sub Command2_Click() 'ストップボタン
ExitSw = 1
End Sub
他にも方法があると思うけど、こんなんでいいんでない?
この回答への補足
回答有難うございます。ただ・・どうしても抜けられません・・。全然初心者なのでまだわかりません。
Private Sub CommandButton1_Click()
Dim i As Integer, n As Integer, b As Integer, a As Integer
Do
a = 1
For i = 0 To 7
Range("a1") = a
For n = 0 To 500
DoEvents
Next n
a = a + 1
Next i
a = 2
For b = 0 To 7
Range("b1") = a
For n = 0 To 500
DoEvents
Next n
a = a * 2
Next b
If stop_flag = False Then Exit Do
Loop
End Sub
Private Sub CommandButton2_Click()
stop_flag = True
End Sub
7回まわってLOOPする形のものを中身を変えて出したのですが、どうしても止まりません・・。何がわるいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Excel VBA Application.caller...
-
ユーザーフォームに別シートか...
-
C#プログラムで、ボタンをショ...
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
ボタンをマウスで押し続けたと...
-
[VB.net] ボタン(Flat)のEnable...
-
フォームの再読み込み
-
vc#で15パズル
-
[Excel VBA]コマンドボタンの入...
-
VB6でマルチスレッド?
-
ボタン上にビットマップ、アイ...
-
セルをマクロのボタンにしたい。
-
ASP.Net ラベルの内容をすぐに...
-
VBAのボタンの位置が変わって困...
-
VB.NETでマウスクリックイベン...
-
Excel マクロ 閉じるボタン
-
ダウンロードダイアログをVB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
C#プログラムで、ボタンをショ...
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
[VB.net] ボタン(Flat)のEnable...
-
Excel マクロ 閉じるボタン
-
VBAで多数のプログラムを一つの...
-
ボタンをマウスで押し続けたと...
-
VB.net でトグルボタンを実現し...
-
プロシージャからイベントをコ...
-
アイコンとボタンの違い
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
[Excel VBA]コマンドボタンの入...
-
ASP.Net ラベルの内容をすぐに...
おすすめ情報