• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBA TextBoxの値を取得できない)

ExcelVBA TextBoxの値を取得できない

このQ&Aのポイント
  • Excel2010でUserFormを使用してTextBoxの値を取得しようとしていますが、値が取得できません。
  • UserForm1とUserForm2において共通のプロシージャを使用してTextBoxの値を取得していますが、値が反映されません。
  • Debug.Printを使用して値を確認した結果、UserForm1では値を取得できることが判明しました。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>対処法が分かれば教えていただきたいです。 参考に Option Explicit Dim myForm1 As UserForm1 Dim myForm2 As UserForm2 Sub UserForm1起動()   Set myForm1 = UserForms.Add("UserForm1")   myForm1.Show (vbModeless) End Sub Sub UserForm2起動()   Set myForm2 = UserForms.Add("UserForm2")   myForm2.Show (vbModeless) End Sub Sub UserForm1処理()   Const Num = 100   Call TextBoxチェック(myForm1, Num) End Sub Sub UserForm2処理()   Const Num = 150   Call TextBoxチェック(myForm2, Num) End Sub Sub TextBoxチェック(ByVal UserFormObj As Object, Num As Integer)   Dim i As Integer   Dim Con As Control   With UserFormObj     For i = 1 To Num       Set Con = .Controls("TextBox" & i)       Debug.Print Con.Name       Debug.Print .Controls("TextBox" & i).Value     Next i   End With End Sub

diamond_cutter
質問者

お礼

できました!ありがとうございました。

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

こんにちは まず下記のコードを実行してください。 Private Sub CommandButton1_Click()   Dim myForm As UserForm1   Set myForm = UserForms.Add("UserForm1")   myForm.Show (vbModeless) End Sub コマンドボタンを押す毎にUserForm1が作成されるのが 確認できたかと思います。 >With UserForms.Add(UFName) >For i = 1 To Num >Set Con = .Controls("TextBox" & i) >Debug.Print Con.Name >Debug.Print .Controls("TextBox" & i).Value ここでUserForms.Add(UFName)を実行することで TextBoxに値の無い新たなUserForm1を参照しているのでは

関連するQ&A

専門家に質問してみよう