Excel VBA 質問スレッド No.4 (解決済)

VBAでコンボボックスの作成

投稿者 : vegas     投稿日時 : 2015/10/18(Sun) 07:11:14     OS : Windows 8.1     EXCEL : Excel 2010
ユーザーフォーム上のコンボボックスに入力すると、下に新しいコンボボックスを生成する方法があれば教えてください。(1から10個まで任意の数を追加したい)
その際のROWSOUCEの入れ方も教えてください。

[返信 1] Re : VBAでコンボボックスの作成
投稿者 : 管理人     投稿日時 : 2015/10/18(Sun) 22:46:49
コンボボックスを動的に10個生成するだけならば、以下のコードでいけると思います。
前提として、プロジェクト内にUserForm1 というユーザーフォームがあり、
また、Sheet1 A~J列 1~10行目に
コンボボックスへ表示させたい値が設定されているものとします。
コンボボックスの生成数や位置などは適宜変更してください。

Private Sub コンボボックス生成()
Dim i As Integer
Dim strCol As String

For i = 0 To 9
With UserForm1.Controls.Add("Forms.ComboBox.1")
.Top = i * 18
.Left = 0
strCol = Chr(65 + i) ' Chr(65) = "A"
.RowSource = "Sheet1!" & strCol & "1:" & strCol & "10"
End With
Next i
End Sub


ただ、今回のように生成するコンボボックスの最大数が決まっているのであれば、
あらかじめ静的に10個配置しておく方法もありだと思います。
フォームロード時にはコンボボックスの Visible プロパティを False に設定しておき、
その後、所定の操作がされたら、必要な数のコンボボックスに対して
RowSource と Visible を設定するというのはいかがでしょうか?

[返信 2] Re : VBAでコンボボックスの作成
投稿者 : vegas     投稿日時 : 2015/10/19(Mon) 07:43:54
いい解答をありがとうございました。
思うようなものができました。
毎回、ボックスの数が変化しますので、これで作成して行こうと思います。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 09:44:13 )

Page
Top