• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBA OptionButtonからTextBox)

エクセルVBAでOptionButtonからTextBoxに変化した場合のエラー表示

このQ&Aのポイント
  • エクセルVBAでOptionButtonからTextBoxに変化した場合、エラー表示を簡単にする方法について教えてください。
  • OptionButtonではなくTextBoxの場合、どのように変化すれば良いでしょうか?
  • Private Sub 記録_Click()内のコードを参考にして、選択がされていない場合や内容が選択されていない場合にエラーメッセージを表示するように変更したいです。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

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 こんな感じになりますが。

pop2003
質問者

補足

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いれないと やはり、表示は無理なのでしょうか? この違いは? すいません 色々質問してばっかりで!

その他の回答 (4)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

ANo.3はオブジェクト名が変更された事により、 Me.Controls("TextBox" & Cnt)等で 指定できない場合に、 UF上の全てのコントロールを順に見ていく中で、 If TypeName(v) = "TextBox" Then に限定し If v.Text = "" Then 未入力かどうかを判断してます。 よって呼び出される順番が不明なのでCntのような変数を用いてません。 オブジェクト名を変更していないのであれば、コンボボックスで使用していた方法を流用できます。 の違いでしょうか。

pop2003
質問者

お礼

ありがとうございます! 解説までしてもらって すいませんでした! 理解出来ました!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

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 こうゆうことかも。

pop2003
質問者

お礼

ありがとうございます! もしオブジェクト名変更していなかったら ひとつづ If v.TextBox1 = "" Then MsgBox "TextBox1は未入力です" ですと記述しないといないんですよね! ありがとうございました 解決できました!(^^)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

ANo.1です。 オブジェクト名であれば MsgBox Me.Controls("TextBox" & Cnt).Name このことでしょうか? もしかして違うかな?

pop2003
質問者

補足

ありがとうございます! その場合は 全体の記述はどのように 変えれば良いのですか? ただ一部を変化するだけでいいのでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

TextBoxにして何をしたいのか(どう判定させたいのか)が今一つピンとこないのですが。

pop2003
質問者

補足

すいません! つまりOptionButtonならCaption で 「○○のの内容が選択されていません」 というような表示ができるのですが TextBoxならできませんよね(^^! そこで、直接"○○の内容が選択されていません"と 記入する方法にしたいのですが どのように 記述を変化したら 良いのでしょうか? すいません、教えて下さい。

関連するQ&A