

No.1ベストアンサー
- 回答日時:
Subプロシージャを外部から終了させるのは、実用的ではありません。
Subプロシージャの中で、停止ボタンが押された場合には、
計算処理を中断するような仕組みにしておくと良いと思います。
下記のコードは、ユーザフォームに「 実行ボタン( cmdAction ) 」と
「 停止ボタン( cmdStop ) 」を配置した場合のサンプルです。
グローバル変数で停止フラグを定義し、
フラグがOFFの間は処理を続け、
フラグがONになったら終了するプログラムになっています。
'' 停止フラグ
Public bStopFlg As Boolean
''------------------------------
'' [ 実行 ]ボタン押下時
''------------------------------
Private Sub cmdAction_Click()
'' フラグをOFF
bStopFlg = False
'' 計算処理実行
Call cal
End Sub
''------------------------------
'' [ 停止 ]ボタン押下時
''------------------------------
Private Sub cmdStop_Click()
'' フラグをON
bStopFlg = True
End Sub
''------------------------------
'' 計算処理
''------------------------------
Sub cal()
Do While True
'' 何らかの計算処理
Cells(1, 1) = Cells(1, 1) + 1
Application.Wait Now + TimeValue("00:00:01")
DoEvents
'' [停止]ボタンが押された場合( フラグがON )
If bStopFlg Then
If MsgBox("中断しますか?", vbQuestion + vbYesNo) = vbYes Then
Exit Do
Else
bStopFlg = False
End If
End If
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) こんにちは。ExcelVBA初心者につき困っています。Functionで始まっている処理の中で、処理 1 2022/06/18 21:40
- Excel(エクセル) vba フォーム軽量化 1 2022/09/07 18:59
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) VBAに関する質問です 2 2022/03/30 22:44
このQ&Aを見た人はこんなQ&Aも見ています
-
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
-
4
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
5
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
6
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
7
UserForm1.Showでエラーになります。
工学
-
8
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
VBAコード実行を中止する方法は?(1プロシージャだけでなく)
Visual Basic(VBA)
-
11
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
12
Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換さ
その他(Microsoft Office)
-
13
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
14
エクセル/マクロ Exit Subが実行されない
Excel(エクセル)
-
15
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
16
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
17
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
VBA public変数はどのようなことをしたら解放されますか?
Visual Basic(VBA)
-
20
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスを操作できな...
-
VBAでcallで呼び出したsubを終...
-
[Excel2000]auto_closeを止めさ...
-
他のフォームから別のフォーム...
-
キーボードの十字キーでの操作...
-
VBでExcel上PictureBoxダブルク...
-
ClickとChangeイベントの違いは...
-
VBで終了時に表示される「変更...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
Verilogの文法
-
パスカル言語
-
C++でのtxtファイル読み込みに...
-
サブルーチンの@_とreturn
-
整数かどうかチェックする
-
エクセルVBAでテキストボッ...
-
VBSのプログラム
-
RichTextBoxで指定行の色を自動...
-
文字列の中からある文字の個数...
-
VBA for next
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
チェックボックスを操作できな...
-
VBAでcallで呼び出したsubを終...
-
ClickとChangeイベントの違いは...
-
VB6でForm_Load中にイベントを...
-
[Excel2000]auto_closeを止めさ...
-
comboboxのクリックイベントに...
-
EXCEL2010 VBA SelectionChange...
-
コンボボックスのClickイベント
-
音が鳴らないようにしたい
-
VB6でClickイベントを一時的に...
-
キャッシュを無効に
-
JavaScript イベントハンドラの...
-
VBA public変数はどのようなこ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
レコードセットにnullの場合
-
アクセスできない保護レベルエ...
-
C#のループでtextboxに値を入れ...
おすすめ情報