• 締切済み

コンボボックスの値をVBAで配列に格納したい

コンボボックスの値をVBAで配列に格納したいのですが どういうコードにすればいいでしょうか? コンボボックスの参照元を格納するのではなく、 現在コンボボックスに表示されてるデータを格納したいです。 今、 Sub test() Dim varComb As Variant varComb = ActiveSheet.ComboBox1.Value End Sub というコードを作ったのですが、 これだと「aaa」しか取得できません。 varCombに"aaa,bbb,ccc"とカンマ区切りで格納するにはどうすればいいでしょうか? ComboBox1に表示されるデータ数を取得し、 ループさせ、 varComb = varComb & "," & ActiveSheet.ComboBox1.Value で格納していくイメージですが、コードが作れません。 よろしくお願いします。

みんなの回答

回答No.2

verCombが文字列なのか、配列なのかがわかりませんが、 両方書いてみました。 test1は、一次元配列”verComb()” に値を格納ています。その配列に対しJoin関数を使って、配列内の要素を結合した(カンマ区切りの)文字列”msg”を作っています。 test2は文字列”verComb”に直接コンボボックスの値をカンマ区切りで入れているだけです。 どちらかがお役に立てば幸いです。 '--------------------------------------- Sub test1() Dim verComb() As Variant, msg As String, i As Integer With ActiveSheet.ComboBox1 ReDim verComb(UBound(.List)) For i = 0 To UBound(.List) verComb(i) = .List(i) Next i msg = Join(verComb, ",") Debug.Print msg End With End Sub ’-------------------------------------- Sub test2() Dim verComb As String, i As Integer With ActiveSheet.ComboBox1 verComb = .List(0) For i = 1 To UBound(.List) verComb = verComb & "," & .List(i) Next i End With Debug.Print verComb End Sub

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

コンボボックスの各アイテムを具体的にどうやってコンボボックスに収納したのか、によります。 例えばコンボボックスのプロパティでListFillRangeにA1:A5のように設定しているような場合: dim s as string s = join(application.transpose(activesheet.combobox1.list),",") msgbox s

関連するQ&A