- ベストアンサー
エクセルVBAでOptionButtonからTextBoxに変化した場合のエラー表示
- エクセルVBAでOptionButtonからTextBoxに変化した場合、エラー表示を簡単にする方法について教えてください。
- OptionButtonではなくTextBoxの場合、どのように変化すれば良いでしょうか?
- Private Sub 記録_Click()内のコードを参考にして、選択がされていない場合や内容が選択されていない場合にエラーメッセージを表示するように変更したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3です。 オブジェクト名を変更していなければ、 例えば Dim Cnt As Integer For Cnt = 1 To 6 If Me.Controls("TextBox" & Cnt).Text = "" Then MsgBox Me.Controls("TextBox" & Cnt).Name End If Next こんな感じになりますが。
その他の回答 (4)
- n-jun
- ベストアンサー率33% (959/2873)
ANo.3はオブジェクト名が変更された事により、 Me.Controls("TextBox" & Cnt)等で 指定できない場合に、 UF上の全てのコントロールを順に見ていく中で、 If TypeName(v) = "TextBox" Then に限定し If v.Text = "" Then 未入力かどうかを判断してます。 よって呼び出される順番が不明なのでCntのような変数を用いてません。 オブジェクト名を変更していないのであれば、コンボボックスで使用していた方法を流用できます。 の違いでしょうか。
お礼
ありがとうございます! 解説までしてもらって すいませんでした! 理解出来ました!
- n-jun
- ベストアンサー率33% (959/2873)
ANo.2です。 もしオブジェクト名が変更されているのなら、 Dim v For Each v In Me.Controls If TypeName(v) = "TextBox" Then If v.Text = "" Then MsgBox v.Name & "は未入力です" End If End If Next こうゆうことかも。
お礼
ありがとうございます! もしオブジェクト名変更していなかったら ひとつづ If v.TextBox1 = "" Then MsgBox "TextBox1は未入力です" ですと記述しないといないんですよね! ありがとうございました 解決できました!(^^)
- n-jun
- ベストアンサー率33% (959/2873)
ANo.1です。 オブジェクト名であれば MsgBox Me.Controls("TextBox" & Cnt).Name このことでしょうか? もしかして違うかな?
補足
ありがとうございます! その場合は 全体の記述はどのように 変えれば良いのですか? ただ一部を変化するだけでいいのでしょうか?
- n-jun
- ベストアンサー率33% (959/2873)
TextBoxにして何をしたいのか(どう判定させたいのか)が今一つピンとこないのですが。
補足
すいません! つまりOptionButtonならCaption で 「○○のの内容が選択されていません」 というような表示ができるのですが TextBoxならできませんよね(^^! そこで、直接"○○の内容が選択されていません"と 記入する方法にしたいのですが どのように 記述を変化したら 良いのでしょうか? すいません、教えて下さい。
補足
Dim v For Each v In Me.Controls If TypeName(v) = "TextBox" Then If v.Text = "" Then MsgBox v.Name & "は未入力です" End If End If Next 上記ではなく Cntいれないと やはり、表示は無理なのでしょうか? この違いは? すいません 色々質問してばっかりで!