- ベストアンサー
テキストボックスの複数選択(その2)
前回、ここで教えていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1809271 リストボックスで複数選択をして、選択項目を 北海道、青森、新潟というふうに「、」で区切ってセルへ表示の仕方を質問しましたが A1のセルへ北海道 B1のセルは青森 C1のセルへ新潟というふうに表示させる方法を教えてください。 初心者ですので、解説も入れていただけると助かります。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
仕掛けは#1のご回答と同じですが、丁寧に書くと たとえばSheet1にリストボックスを1つ貼り付ける。 プロパティのMultiSelectをTrueにする。 ListFillRangeをI1:I10とか設定する。(またはAddItemsで設定する) 下記の例ではLostFocusイベントに関連付けたが、別途Command_Clickでもよい。 Private Sub ListBox1_LostFocus() c = Array("A1", "B1", "C2") For i = 1 To UBound(c) Range(c(i)) = "" Next i '---- j = 0 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then If j > UBound(c) Then Exit For Range(c(j)) = ListBox1.List(i) j = j + 1 End If Next i End Sub Array の中は自由にセル番地と数と順序を設定してください。 上記の例ではリストボックスの選択されたアイテムの、上から 1番上 A1 2番目 B1 3番目 C2 にセットし、それ以上の選択分は無視します。 いかがでしょう。
その他の回答 (1)
- dober-o
- ベストアンサー率59% (260/439)
例えばこんな感じで For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then Cells(1, i + 1) = ListBox1.List(i) End If Next i Range("A1")、Range("B1") ・・・ はそれぞれ Cells(1, 1)、Cells(1, 2) ・・・ に対応しています 変数を使う場合は Cells の方が使いやすいかな 参考になれば
お礼
丁寧に解説していただきありがとうございました。 rangeとcellsの使い方、大変参考になりました。
お礼
親切に解説していただきありがとうございました。 思ったとおりのことができました。 勉強させていただきました。