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(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
エクセル/マクロ Exit Subが実行されない
Excel(エクセル)
-
-
4
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
5
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
【VBA】エラー処理で別プロシージャに飛ばす方法
Visual Basic(VBA)
-
8
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
9
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
10
エクセルでエラーが出て困っています。
Excel(エクセル)
-
11
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
12
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
13
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
14
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
15
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
16
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
19
エクセルVBAでシートモジュールでのパブリック変数
Excel(エクセル)
-
20
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他のフォームから別のフォーム...
-
ClickとChangeイベントの違いは...
-
VB.NETでのイベントの途中終了
-
チェックボックスを操作できな...
-
comboboxのクリックイベントに...
-
C言語のサフィックスについて
-
【VB.NET】テキストボックスに...
-
プログラムの素朴な質問です 分...
-
sublimit textっていうエディタ...
-
演奏記号の・・・・
-
Functionの戻り値を配列にした...
-
アクセスできない保護レベルエ...
-
visual basic初心者です。 visu...
-
Vba 電卓のテキストボックスに...
-
VBA public変数はどのようなこ...
-
文字列を日付型情報として計算...
-
パーソナルXLSBのfuctionを呼び...
-
プロシージャを呼び出したプロ...
-
三項でたとえば交換って
-
VBでの入力値制限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
-
チェックボックスを操作できな...
-
VB.NETでのイベントの途中終了
-
ClickとChangeイベントの違いは...
-
VB6でForm_Load中にイベントを...
-
[Excel2000]auto_closeを止めさ...
-
EXCEL2010 VBA SelectionChange...
-
VB6でClickイベントを一時的に...
-
comboboxのクリックイベントに...
-
キャッシュを無効に
-
VBで終了時に表示される「変更...
-
音が鳴らないようにしたい
-
sublimit textっていうエディタ...
-
エクセルVBAでテキストボッ...
-
VBA public変数はどのようなこ...
-
Functionの戻り値を配列にした...
-
C#のループでtextboxに値を入れ...
-
レコードセットにnullの場合
-
プログラムの素朴な質問です 分...
おすすめ情報