私は、表示されている特定のワークシートにある列の数に基づいてExcelユーザーフォームで可変数のコントロール(コンボボックス)を作成しようとしています。理想的には、既存のものを削除して、実行時に新しいものを作成したいと思います.100を作成して、目に見えるものと目に見えないものの間を行き来するだけです。私は現時点でコンボボックスとループを作成しますが、作成するのは1だけです。コンボボックスが上書きされているように見え、作成された最後のコンボボックスで終了します。実行時に同じuserformにすべてを得るための提案はありますか?実行時にコントロールを動的に作成する方法
Private Sub CommandButton1_Click()
Dim cCont As New Control
Dim ws As Worksheet
Dim lc As Long
Dim i As Long
Set ws = Loan_Data
lc = Loan_Data.Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lc
Set cCont = Me.Controls.Add("Forms.CommandButton.1", "NewCombo" & i)
With cCont
.Caption = cCont.Name
.AutoSize = True
.Visible = True
End With
Next i
End Subの
コントロールのスタックをすべて同じ位置に作成しているのではなく、その上に最後のコントロールを作成するだけではないですか? –
ボタンを作成しているように見えますが、ボタン同士を重ねて作成しています。したがって、それは1つを作成するだけであるように見せます。あなたは作成後に場所を更新する必要があります – Maldred
よく私はダム感じる。ありがとうございます –