• ベストアンサー

リストボックスの複数データをセルに転記する

よろしくお願いします。 複数表示させたリストの2番目のリストを抜いて 1、3、4、5番目のリストを、 シートAの、C6からF6に転記する   With ListBox1 .ColumnCount = 5 .ColumnWidths = "150;0;150;0;0"                ↑ .RowSource = "シートA!C6:F" & Worksheets("シートA").Cells(Rows.Count, 5).End(xlUp).Row End With

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

  • ベストアンサー
回答No.2

こんにちは、みっちょです。 セルの途中を1列飛ばした範囲をリストとしたいのでしょうか? それであればセル内容の変更に同期させる必要が無いのであれば、 Dim tV As Variant, LL As Long, tI As Long ListBox1.ColumnCount = 5 ListBox1.ColumnWidths = "150;0;150;0;0" LL = Worksheets("シートA").Cells(Rows.Count, 5).End(xlUp).Row ReDim tV(LL - 6, 4) For tI = 6 To LL   tV(tI - 6, 0) = Worksheets("シートA").Cells(tI, 3).Value   tV(tI - 6, 2) = Worksheets("シートA").Cells(tI, 4).Value   tV(tI - 6, 3) = Worksheets("シートA").Cells(tI, 5).Value   tV(tI - 6, 4) = Worksheets("シートA").Cells(tI, 6).Value Next ListBox1.List = tV などとやれば、リストの内容をセルより更新できます。 逆に先にリスト側に出来上がっている内容をセルに移すには、 Dim tV As Variant, LL As Long, tI As Long tV = ListBox1.List LL = UBound(tV) For tI = 0 To LL   Worksheets("シートA").Cells(tI + 5, 3).Value = tV(tI, 0)   Worksheets("シートA").Cells(tI + 5, 4).Value = tV(tI, 2)   Worksheets("シートA").Cells(tI + 5, 5).Value = tV(tI, 3)   Worksheets("シートA").Cells(tI + 5, 6).Value = tV(tI, 4) Next などとやれば可能です。こういった感じではいかがでしょう?

1211M
質問者

お礼

つたない説明にも関わらず、丁重にお答えいただきましてありがとうございました。 解決しました。

その他の回答 (1)

回答No.1

こんにちは、みっちょです。 意図されていることが良く解りませんが、 4項目程度ならベタ打ちしてはどうでしょう? Worksheets("シートA").Range("C6").Value = ListBox1.List(ListBox1.ListIndex, 0) Worksheets("シートA").Range("D6").Value = ListBox1.List(ListBox1.ListIndex, 2) Worksheets("シートA").Range("E6").Value = ListBox1.List(ListBox1.ListIndex, 3) Worksheets("シートA").Range("F6").Value = ListBox1.List(ListBox1.ListIndex, 4) こんな感じでは求める結果は得られませんか?

1211M
質問者

お礼

ありがとうございます。 出来ましたが、E列目の6行より下で End(xlUp).Rowとしたいのです。 よろしくお願いします。

関連するQ&A