• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA)

エクセルVBAユーザーフォームのコマンドボタン処理について

このQ&Aのポイント
  • エクセルVBAのユーザーフォーム内にあるコマンドボタンをクリックした際に、複数の処理を実行したい場合、処理1→処理2→処理3という流れで実行されます。
  • 処理1の中には条件分岐があり、条件に合致する場合はメッセージボックスが表示されます。処理3の中にはユーザーフォームを閉じる処理があります。
  • 処理1で条件に合致した場合、その後の処理2、処理3をスキップして処理1で終了させる方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 みたいな。

kidibotkbg
質問者

お礼

返信ありがとうございます 無事成功しました 助かりました

その他の回答 (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

kidibotkbg
質問者

お礼

早速の回答ありがとうございます CommandButton1処理1 には複数のif~end ifがあったからか、なぜかユーザーフォームが閉じてしまいます・・・ 引き続き格闘してみます

関連するQ&A

専門家に質問してみよう