ユーザーが希望するテキストボックス数に応じてプログラムでテキストボックスを空白のユーザーフォームに追加する関数を作成しようとしています。プログラムで追加されたVBAテキストボックスからデータを保存する
現在、私はこれを行う機能を持っていますが、テキストボックスの値は保存できません。私はあなたに名前を付けることが容易である
Function addtxtbox(number_of_textboxes As Integer)
Dim option_names As New UserForm2
Dim names As String
Dim test As String
Dim textbox As Object
Dim submit As Object
For i = 1 To number_of_textboxes
Set textbox = option_names.Controls.Add("Forms.textbox.1")
With textbox
.Left = 30
.Width = 200
.Top = 20 * i
.Left = 20
End With
MsgBox (textbox.Name)'used to find the name of the textboxes
Next
option_names.Show
names = "TextBox1" 'correct name of the 1st textbox according to the msgbox above.
MsgBox (names) 'msgbox is always blank
test = option_names.names 'Compile error: Method or data members not found
'test = textbox.TextBox1.Value 'run time error 418 object does not support this property or method
MsgBox (test)
End Function
あなた 'UserForm2'内のコードは何ですか? (私は 'addtxtbox 4'を呼び出す' Click'イベントと、 'Me.Unload'を単に行った' Click'イベントという空白のUserForm2を持つUserForm1を作成しました。それは正しく4つのテキストボックスを追加し、2番目のフォームを表示し、最初のテキストボックスに何かを入力してからフォームをクリックした後、 '' TextBox1 "'メッセージが表示された 'addtxtbox'関数に戻り、 'test = option_names.Controls(names)'、テキストボックスに入力された値が表示されました) – YowE3K
私のuserform2のコードは、コマンドボタン付きの空のuserformです。コマンドボタンがYowE3K @何のコード – foch
がないことを私はあなたのアドバイスを取り、<テスト= option_names.Controls(名)>を使用してから 「プライベートサブCommandButton1_Click() Me.Hide End Subの」 以外のコードを持っていますコードテキストボックスデータが表示されました。ありがとうございました!!! – foch