• ベストアンサー

VBAでユーザーフォームのテキスト等に空白欄があった場合に、メッセージボックスが出るようにしたい

今VBAでシミュレーションソフトを作っていますが、 ユーザーフォームのテキスト、リストボックスで入力されたものが、処理されて結果が出るようにしています。 そのなかで、空白のテキスト等があった場合、間違った結果が出力されるので、空白テキストが出ないようにメッセージボックスが出るようにしたいのです。 テキストはTB1~TB6 リストボックスはLB1~LB6 あります。 入力ボタンを押すと どれかひとつでも空白があればメッセージボックスが出力され、 ユーザーフォームに戻るようにしたいです。 ご回答よろしくお願いします

  • aspha
  • お礼率17% (7/41)

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

TextBoxはValue、ListBoxはValueあるいはListIndexで判断してはいかがでしょう? Dim i As Integer Dim cnt As Integer cnt = 0 For i = 1 To 6 UserForm1.Controls("TextBox" & i).Value <> "" Then cnt = cnt + 1 Next i などとして、cntの値で判断するとか。 ListBoxの場合もループの仕方は同じです。

関連するQ&A

  • VBAユーザーフォーム内のテキストボックスで検索

    http://oshiete.homes.jp/qa3451770.html こちらで質問した者なのですが (benelli様ありがとうございました) VBAでユーザーフォームでの検索を作成し このユーザーフォーム内にテキストボックスを作成して そのテキストボックスに入力した数字を検索できるようにしたいです。 よろしくお願い致します。

  • エクセルVBAのユーザーフォーム上のテキストボックスについての質問です

    エクセルVBAのユーザーフォーム上のテキストボックスについての質問です。 Aのユーザーフォームの内容をBのユーザーフォームのテキストボックスへ引き継いで、Bのユーザーフォーム上で内容を編集するという仕組みにしたいのです。 Bのユーザーフォームは新規入力もかねたユーザーフォームなので、テキストボックスのイベントにAfterUpdateを使用して、テキストボックスの内容が書き換えられるとデータベースから検索して新規か既存か判断させています。 AのユーザーフォームからBのユーザーフォームのテキストボックスへ引継ぎさせるときにこのAfterUpdateを発生させたくないのですが、Application.EnableEvents=Falseなどを使ってもイベントが発生してしまいます。 また、イベントがどのタイミングで発生するかと、コードをステップで実行させると、このイベントは発生しません。そのために、いきづまってしまいました。 AのユーザーフォームからBに引き継ぐ処理  ユーザーフォームB.Load ---ユーザーフォームBのイニシャライズが実行される  ユーザーフォームB.テキストボックス = ユーザーフォームA.テキストボックス  ユーザーフォームB.Show ちょっと簡単に書きすぎですがこんな感じです。 コードをステップで実行するとユーザーフォームBのAfterUpdateは実行されません。(VBAエディタのバグ?) どなたか回答お願いします。

  • VBAのテキストボックスについて

    VBAで作成したユーザーフォームのテキストボックスの中にhtmlのソースを貼り付けて、そのソースの中のtableタグ中から数値を取り出してそれぞれのセルに出力したいと考えていますが、そのようなことはできるのでしょうか。 自分である程度考えているのですが、なにぶん始めたばかりなのものですから、テキストボックス内の文字列をどう処理すればよいのかわかりません。 よろしければ教えてください。

  • ACCESS VBA フォーム複数条件

    ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。 フォーム内に複数テキストボックスがあります。 テキスト1 テキスト2 テキスト3 このテキストボックスの入力があるかどうかで、 エクスポートするクエリを変更したいです。 それぞれのテキストボックスの入力値は、 対応するクエリの抽出条件になっています。 少なくとも、テキスト1には入力があるという条件で、 ・テキスト2が空白なら、クエリ2を出力する ・テキスト3が空白なら、クエリ3を出力する という処理を行いたいのです。 マクロビルダーで、IFを使った処理は作ることができたのですが、 VBAを使って、同じ処理ができるようにしたいです。 どうかご教授のほど、よろしくお願いします。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • エクセル・VBAでテキストボックスに入力された文字を

    エクセル・VBAでテキストボックスに入力された文字を B列から検索し、結果をユーザーフォームのリストbox に表示したいのですがうまくいきません 検索は部分一致・大文字小文字無視で行いたいです よろしくお願いします

  • VBA あるフォームのあるテキストボックスへ飛びたい

    教えてください エクセルのVBAで簡単な1問1答形式のプログラムを作っています フォームにある「次の問」を押したときに そのフォーム上に解答用のテキストボックスに 自動的に行く方法を教えてください 今は、「次の問」を押して マウスでそのテキストボックスをさらにクリックして 解答を入力するという状態です 上記の「マウスでテキストボックスをさらにクリックして」 という部分をなくしたいのです どうぞよろしくお願いします

  • VBAのユーザーフォームの使い方

    皆様、こんにちは。 VBAのユーザーフォームを習い始めた初心者です。本の説明を読んでもユーザーフォームの使い方がよく分かりません。例えば、あるセールをクリックしたら、フォームが表示される、そしてフォームの中にあるコンボボックスのリストの中から選ばれた値が最初に選択したセールに入力されるという使い方がありえますか?申し可能でしたら、コード作成の例をいただけないでしょうか? どうぞよろしくお願いいたします。

  • 【VBA】ユーザーフォームから、シート上のテキストボックスを操作

    ユーザーフォームで入力した値を、シート上にあるテキストボックスに入力させたいのですが、 どのように記述すればいいのでしょうか?(ボタンで操作) またおなじくテキストボックスの大きさ、フォントの大きさ、などを操作するにはどのようにしたらいいですか?

  • vba ボタン押すとユーザフォーム、リストをクリア

    vba で、実行すると、ユーザフォームとリストBOXに結果を反映するものをつくりましたが、 この反映された結果を、ボタンを押すとクリアにしたいのです。 ユーザフォーム、リストボックスの内容をクリアするには、どのような記述にすればよろしいでしょうか?

専門家に質問してみよう