• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでフォーカスを移動しない方法の続き)

Excel VBAでフォーカスを移動しない方法の続き

このQ&Aのポイント
  • 質問番号5013953の解決方法を紹介します。
  • コンボボックスをExitで移動しなくすることはできますが、他の部分で不具合が生じる可能性があります。
  • フォームにデータ入力中に中断するための終了コマンドボタンを作成しましたが、コードの影響で終了できない問題が発生しました。解決方法を教えてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 いずれにしても、このコードで、ユーザーフォームが終了するとか言う意味ではありません。 >Private Sub 終了cmd_Click() >End >End Sub End は、Exit Sub とは似ていますが、サブルーチンの時に、終了してしまうステートメントです。 前回の質問 Private Sub [コンボボックス名1]_Exit(ByVal Cancel As MSForms.ReturnBoolean) If [コンボボックス名2] = "" Then  ・  ・ 前回の質問は、 [コンボボックス名1] --> [コンボボックス名2] となっているので、そういうことから確認する手間を考えて、回答はしなかったのですが、同じ、Control でよいのなら、話は違ってきます。 >リストのソースを設定してあるコンボボックスから次のコンボボックスに移動する際、入力にエラーあればフォーカスを移動しないようにするコードはどのようにすればいいのですか? それに、これもよく分からなかったです。「入力にエラーがあれば」が、「空欄があれば」に変わっています。 '----------------------------------------------- Private Sub UserForm_Initialize()  終了cmd.TakeFocusOnClick = False '----- 設定-- End Sub Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)   If 終了cmd.TakeFocusOnClick = False Then     If ComboBox1.Value = "" Then       Cancel = True       MsgBox "値がありません。", vbInformation, Me.Name     End If   End If End Sub Private Sub 終了cmd_Click()  終了cmd.TakeFocusOnClick = True  Unload Me End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)  終了cmd.TakeFocusOnClick = True End Sub '--------------------------------------------------- このようにすればよいのではないかと思います。

pythu
質問者

お礼

できました、ありがとうございました。 VBA初心者なのでこれからもよろしくお願いします。

関連するQ&A