• ベストアンサー

テキストボックスの複数選択(その2)

前回、ここで教えていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1809271 リストボックスで複数選択をして、選択項目を 北海道、青森、新潟というふうに「、」で区切ってセルへ表示の仕方を質問しましたが A1のセルへ北海道 B1のセルは青森 C1のセルへ新潟というふうに表示させる方法を教えてください。 初心者ですので、解説も入れていただけると助かります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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 にセットし、それ以上の選択分は無視します。 いかがでしょう。

emi445
質問者

お礼

親切に解説していただきありがとうございました。 思ったとおりのことができました。 勉強させていただきました。

その他の回答 (1)

  • dober-o
  • ベストアンサー率59% (260/439)
回答No.1

例えばこんな感じで 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 の方が使いやすいかな 参考になれば

emi445
質問者

お礼

丁寧に解説していただきありがとうございました。 rangeとcellsの使い方、大変参考になりました。

関連するQ&A

専門家に質問してみよう