• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.Netのコントロール名の操作について)

VB.Netコントロール名の操作について

このQ&Aのポイント
  • VB.Netのコントロール名を操作する方法について教えてください。
  • 変数Aに代入されているコントロール名がフォーム上に存在するかどうか判断し、存在すればそのコントロールに入力されている値を取得したいです。
  • 現在のコードでは「オフジェクト参照がオブジェクトインスタンスに設定されていません」というエラーが発生しています。

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

  • ベストアンサー
  • Idler999
  • ベストアンサー率27% (63/231)
回答No.2

ちなみに、「オフジェクト参照がオフジェクトインスタンスに設定されていません」のエラーは、 For Each CntWk In objwk でobjwkのコントロールを見ようとしたけど、 Dim objwk As Object で宣言されただけで実体のオブジェクトがobjwkに設定されていないので出るエラーです。 Dim CntWk As Control Dim objwk As Object Dim 変数A As String 変数A = "?????" objwk = Me For Each CntWk In objwk.Controls 'Controlsプロパティ(コレクション型)を指定する。 If CntWk.Name = 変数A Then    MsgBox(CntWk.Text)  End If Next コレでも動きます。

amamaq
質問者

お礼

Idler999さん: できました! いつもどうもありがとうございます。

その他の回答 (1)

  • Idler999
  • ベストアンサー率27% (63/231)
回答No.1

フォームのイベントに書くのなら、 Dim wk As Control For Each wk In Me.Controls  If wk.Name = "?????" Then   MsgBox(wk.Text)  End If Next コレで動きます。?????はコントロール名です。 ?????という名のコントロールがフォーム上にあれば、そのテキストをメッセージBOXで表示します。 Meはイベントを起した自分自身のことを指すので、フォームイベントならフォームのことを指します。 もちろん、フォーム名.Controls でも構いません。