ここから本文です

VBAのご質問です モードレスモードで開いたユーザーフォームに あるキャンセルボ...

sae********さん

2019/8/1521:17:43

VBAのご質問です
モードレスモードで開いたユーザーフォームに
あるキャンセルボタンを押したら処理を終了させたい
のですが、どのようにしたら宜しいのでしょうか?
モーダルモードで開け

ばキャンセルボタンを押すと
private sub CommandBotton1_Clickに
移るのですのですがモードレスモードだと移らない為
どうしたらいいのか解りません
宜しくお願い致します。

閲覧数:
38
回答数:
3

違反報告

ベストアンサーに選ばれた回答

kak********さん

2019/8/1700:22:01

処理が実行中の場合にイベントを処理するにはDoEventsを記述します。

Option Explicit

Private mExit As Boolean

Private Sub CommandButton1_Click()
Me.Label1.Caption = "実行中"

Do
DoEvents 'イベントを処理する
If mExit Then
MsgBox "終了します"
mExit = False
Me.Label1.Caption = "停止中"
Exit Sub
End If
Loop
End Sub

Private Sub CommandButton2_Click()
mExit = True
End Sub

上記のコードでDoEventsをコメントアウトすると処理の実行中はCommandButton2をクリックできなくなることを確認してください。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tai********さん

2019/8/1606:35:47

キャンセルボタンって
CommandButton2のこと?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

obo********さん

2019/8/1522:01:00

VBAはよくわからないですが、キャンセルボタンが押されたら、private sub CommandBotton1_Clickの中で、標準モジュールに何らかの処理を中止する関数を作って置いて、その関数をClickイベントで呼び出した中止にすればよいと思います。
間違っていたらすみません。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる