• ベストアンサー

入力されていないときに、メッセージを出す(エクセルマクロ)

フォームにオプションボタン1個とテキストボックスが6個 配置してあります。コマンドボタンを押したときに、入力漏れの箇所について注意を促したいのですが、コードはどのように書いたらいいですか。

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

  • ベストアンサー
回答No.1

たとえばこの様なのはいかがでしょうか? オプションボタンは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 これで注意のメッセージが表示されるはずです。

m_boy
質問者

お礼

有難うございました。参考になりました。

その他の回答 (3)

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

追伸: もし、選択肢が1個以上という場合なら、チェックボックスを使ったほうがよいですね。 オプションボタンは、#3 で示したように、本来は、どれか1つが、On になった状態ですから。(全部、オフな状態というのは、設定の問題)

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

こんにちは。 >オプションボタンは2個(1セット)です。 オプションの場合は、数に関係なく、1グループになってしまいます。 教本的な書き方をすれば、オプションボタンは、片方のデフォルト値のValue プロパティを、True にしておきます。そうすると、どれか1つは、True になるわけですが、起動時には、そのままですと、本来はありえない、全部が、False になってしまいます。 そうでないなら、#1 さんのようにすればよいと思います。

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

こんにちは。 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

m_boy
質問者

お礼

有難うございました。参考になりました。

m_boy
質問者

補足

オプションボタンは2個(1セット)です。

関連するQ&A