- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA)
エクセルVBAユーザーフォームのコマンドボタン処理について
このQ&Aのポイント
- エクセルVBAのユーザーフォーム内にあるコマンドボタンをクリックした際に、複数の処理を実行したい場合、処理1→処理2→処理3という流れで実行されます。
- 処理1の中には条件分岐があり、条件に合致する場合はメッセージボックスが表示されます。処理3の中にはユーザーフォームを閉じる処理があります。
- 処理1で条件に合致した場合、その後の処理2、処理3をスキップして処理1で終了させる方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub CommandButton1_Click() dim retval as boolean CommandButton1処理1 retval if retval then exit sub CommandButton1処理2 CommandButton1処理3 End Sub Private Sub CommandButton1処理1(byref retval as boolean) if 条件 then msgbox "success" retval = true exit sub end if End Sub みたいな。
その他の回答 (1)
- monamucho
- ベストアンサー率63% (7/11)
回答No.1
下記のようにすることで、処理1のIfに合致する場合、メッセージボックスを表示させユーザーフォームを閉じることなく処理を抜けることができます。 Sub CommandButton1_Click() If CommandButton1処理1 > 0 Then Exit Sub CommandButton1処理2 CommandButton1処理3 End Sub Private Function CommandButton1処理1() As Integer Dim intRet As Integer intRet = 0 If [条件] Then intRet = MsgBox("メッセージ", vbOkOnly) End If CommandButton1処理1 = intRet End Sub
質問者
お礼
早速の回答ありがとうございます CommandButton1処理1 には複数のif~end ifがあったからか、なぜかユーザーフォームが閉じてしまいます・・・ 引き続き格闘してみます
お礼
返信ありがとうございます 無事成功しました 助かりました