2017-10-24 6 views
0

excel-vbaでユーザーフォームの実行時にn個のテキストボックスと1つのコマンドボタンを追加します。 番号 'n'の間、私はセル値を取得しています。 実行時に作成されたテキストボックスを実行時に動的に作成し、実行時に作成された[送信]ボタンをクリックしたときに入力したデータを保存します。 をExcelシートに保存します。実行時にExcelフォームのテキストボックスとコマンドボタンを追加するにはどうすればよいですか?

For i = 1 To ssheet.Cells(2, 2).Value 
     Set txtB1 = Controls.Add("Forms.TextBox.1") 

     With txtB1 
      .Name = "d" & i 
      .Height = 25 
      .Width = 150 
      .Left = 105 
      .Top = 20 + 10 * i * 4 
     End With 


Set cCont = Controls.Add("Forms.CommandButton.1", "Button", True) 

    With cCont 
     .Caption = "Submit" 
     .Top = 60 + 10 * ssheet.Cells(2, 2).Value * 4 
     .Left = 105 

    End With 

ここで私は必要に応じて表示できますが、ユーザーのボタンをクリックして値をExcelシートに保存することはできません。

+0

あなたは、コマンドボタンがクリックされたときに、テキストボックスにセルのデータを保存したいですか? –

+0

コマンドボタンをクリックすると、ユーザーがテキストボックスに入力したデータをセルに保存したい。 –

+0

実際に私の要件は、ユーザーform.iを使用してN個のデータ(文字列)をセルに格納することです。Cell(2,2).valueからNを取得しています。 –

答えて

0

だから、あなたは、ブックからユーザーフォームを呼び出すことができるユーザーフォーム

Private Sub CommandButton1_Click() 
    For i = 1 To ssheet.Cells(2, 2).Value 
     ssheet.Cells(i, 5).Value = Controls("d" & i).Value 
    Next i 
    Unload UserForm1 
End Sub 

Private Sub UserForm_Initialize() 
    If ssheet.Cells(2, 2).Value > 0 Then 
     For i = 1 To ssheet.Cells(2, 2).Value 
      Set txtB1 = Controls.Add("Forms.TextBox.1") 
      With txtB1 
       .Name = "d" & i 
       .Height = 25 
       .Width = 150 
       .Left = 10 
       .Top = 30 * (i - 1) + 5 
      End With 
     Next i 

     With CommandButton1 
      .Caption = "Submit" 
      .Top = 30 * (i - 1) + 5 
      .Left = 10 
     End With 

     With Me 
      .Width = 200 
      .Height = 200 
      .ScrollTop = 0 
      .KeepScrollBarsVisible = fmScrollBarsVertical 
      .ScrollBars = fmScrollBarsVertical 
      .ScrollHeight = 30 * i + 5 
     End With 
    Else 
     CommandButton1.Visible = False 
    End If 
End Sub 

に次のコードを追加します。ユーザーフォームを作成し、enter image description here

以下

のように、設計時にコマンドボタンを追加しますモジュール

Private Sub Workbook_Open() 
    UserForm1.Show 
End Sub 

フォームをロードすると、テキストボックスが作成され、B2セルの値に基づいてアライメントさ

enter image description here

関連する問題