1

コンボボックスのすべての項目を変数に格納したいと思います。変数はどの型にする必要がありますか? を作ってみました

Dim ComboBoxItems() As String ' dynamic array of strings

しかし、コンボボックスからこの動的配列に項目をコピーする方法がわかりませんか?

私はループでそれを行うことができます:

for i = 1 to combobox.ListCount - 1
 ComboBoxItems(i+1) = combobox.List(i)
next i

(注意してください、それは本当にクレイジーで、コンボボックスリストのインデックスが0であるのに動的配列のインデックスが1であるというのは正しいですか??)

これは行く方法ですか?または、ループなしでリスト全体をコピーする方法は確かにありますか?

4

1 に答える 1

2

と呼ばれるワークシート上の ActiveX ComboBox の場合、Combobox1次を使用できます。

Sub Test()
Dim vArr()
ReDim vArr(1 To ComboBox1.ListCount)
vArr = ComboBox1.List
End Sub

コンボボックスComboBox1とコマンド ボタンを使用したユーザー フォームの同じアプローチCommandButton1

Private Sub CommandButton1_Click()
Dim S()
ReDim S(1 To Me.ComboBox1.ListCount)
S = Me.ComboBox1.List
End Sub

Private Sub UserForm_Initialize()
'Load some items into ComboBox
With Me.ComboBox1
.AddItem "fred, jones'"
.AddItem "mary"
.AddItem "wayne"
End With
End Sub
于 2012-08-22T03:27:52.923 に答える