- ベストアンサー
入力されていないときに、メッセージを出す(エクセルマクロ)
フォームにオプションボタン1個とテキストボックスが6個 配置してあります。コマンドボタンを押したときに、入力漏れの箇所について注意を促したいのですが、コードはどのように書いたらいいですか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たとえばこの様なのはいかがでしょうか? オプションボタンは1個ではなく、1組だとしています。 Private Sub CommandButton1_Click() Dim Ch As Integer Ch = 0 If TextBox1.Value = "" Then Ch = 1 ElseIf TextBox2.Value = "" Then Ch = 1 ElseIf TextBox3.Value = "" Then Ch = 1 ElseIf TextBox4.Value = "" Then Ch = 1 ElseIf TextBox5.Value = "" Then Ch = 1 ElseIf TextBox6.Value = "" Then Ch = 1 ElseIf OptionButton1.Value = False And OptionButton2.Value = False Then Ch = 1 End If If Ch <> 0 Then MsgBox "未入力の箇所があります" End If End Sub これで注意のメッセージが表示されるはずです。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
追伸: もし、選択肢が1個以上という場合なら、チェックボックスを使ったほうがよいですね。 オプションボタンは、#3 で示したように、本来は、どれか1つが、On になった状態ですから。(全部、オフな状態というのは、設定の問題)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >オプションボタンは2個(1セット)です。 オプションの場合は、数に関係なく、1グループになってしまいます。 教本的な書き方をすれば、オプションボタンは、片方のデフォルト値のValue プロパティを、True にしておきます。そうすると、どれか1つは、True になるわけですが、起動時には、そのままですと、本来はありえない、全部が、False になってしまいます。 そうでないなら、#1 さんのようにすればよいと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 OptionButton が、1個なら、チェックのしようがないと思います。 後は、テキストボックス6個ですから、以下のようにすれば出来ます。 二つ以上あれば、最初に、入力漏れのあった場所が指摘されます。 Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 6 If Controls("TextBox" & i).Text = "" Then MsgBox "TextBox" & CStr(i) & " が入力されていません。", 32 Controls("TextBox" & i).SetFocus Exit Sub End If Next End Sub
お礼
有難うございました。参考になりました。
補足
オプションボタンは2個(1セット)です。
お礼
有難うございました。参考になりました。