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(エクセル)
-
エクセル/マクロ Exit Subが実行されない
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
エクセルでエラーが出て困っています。
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
8
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
9
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
10
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
11
UserForm1.Showでエラーになります。
工学
-
12
【VBA】エラー処理で別プロシージャに飛ばす方法
Visual Basic(VBA)
-
13
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
14
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
15
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
16
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
19
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
20
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他のフォームから別のフォーム...
-
VBAでcallで呼び出したsubを終...
-
VB6でClickイベントを一時的に...
-
チェックボックスを操作できな...
-
VB.NETでのイベントの途中終了
-
ClickとChangeイベントの違いは...
-
WORDのアドイン
-
comboboxのクリックイベントに...
-
VBA public変数はどのようなこ...
-
アクセスできない保護レベルエ...
-
【VB6.0】 あるフォームから他...
-
【VB.NET】テキストボックスに...
-
テキストボックスに大文字を
-
引き渡したループ処理で変数がn...
-
Functionの戻り値を配列にした...
-
Excel VBAでsub,dimは何の略?
-
ExcelのVBAで文章にある複数の...
-
エクセルVBAでテキストボッ...
-
GetNextWindowがDLLファイルUse...
-
PL/SQLのプロシージャ間でカー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
チェックボックスを操作できな...
-
[Excel2000]auto_closeを止めさ...
-
ClickとChangeイベントの違いは...
-
VB6でClickイベントを一時的に...
-
comboboxのクリックイベントに...
-
EXCEL2010 VBA SelectionChange...
-
コンボボックスのClickイベント
-
キャッシュを無効に
-
音が鳴らないようにしたい
-
VB6でForm_Load中にイベントを...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
エクセルVBAでテキストボッ...
-
sublimit textっていうエディタ...
-
C言語のサフィックスについて
-
三項でたとえば交換って
-
【VB6.0】 あるフォームから他...
おすすめ情報