• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAリストボックスで複数選んだセルの値を転記)

VBAでActiveXコントロールのリストボックスで複数選択した値をB列に順番に転記する方法

このQ&Aのポイント
  • VBAのActiveXコントロールで作成したリストボックスで複数選択した値を同じシートのB列に順番に転記する方法を教えてください。
  • リストボックス内で選択した項目の一番左の数値を、同じシートのB列の一番最後のセルから順番に1つずつ転記したいです。
  • 現在、再初に選択した値のみが転記されてしまい、順番に1つずつ入れることができません。どうすれば複数選択した値を順番に転記できるでしょうか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.3

> Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = .List(i) > だけでいいのでしょうか。 それでも大丈夫です。念のために.List(i, 0)にしておいてもいいと思います。 > そもそもの設定がだめなんでしょうか。。 設定を全く同じにしてみましたが、ボタンクリックでもステップ実行でも症状が出ませんでした。Win10のエクエル2013です。 一度、別のブックでその部分だけコピーせずに新しく作成して動作を確認してみてはいかがでしょう。 あと Dim n As Integer がありますが質問のコードの中では利用されていません。何か他のコードが実際には含まれているということでしょうか。 時間がありましたら一度以下のコードで試してみてください。 (毎回セルに書き込まないので、セルに書き込み時点で選択が外れているのかどうかの確認です) Private Sub CommandButton1_Click() Dim i As Integer, j As Integer, s As String Dim temp() As Variant j = 0 With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then ReDim Preserve temp(j) temp(j) = .List(i) j = j + 1 End If Next i End With Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(UBound(temp) + 1, 1).Value = WorksheetFunction.Transpose(temp) End Sub

mochimochi76
質問者

お礼

ありがとうございます! 記載していただいたコードで、やりたかった動きができました! 1回ずつ毎度取得→セル移動のループではなく、まとめて→記載という内容でしょうか。 今回どうしてもこれがやりたくて勉強してたのですが、VBA初心者の為行き詰っておりました。 記載していただいた内容がまだまだ私には難しかったので、1行ずつ勉強したいと思います!ありがとうございました!

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

画像つけ忘れました。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

問題なく選択したすべてが1回で転記されますよ。 画像は3列なので転記の部分は以下のようにしてます。 Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = .List(i, 0) Cells(Rows.Count, 2).End(xlUp).Offset(0, 1) = .List(i, 1) Cells(Rows.Count, 2).End(xlUp).Offset(0, 2) = .List(i, 2)

mochimochi76
質問者

補足

ありがとうございます! 欲しかったのは一番左の列の数字だけなので、 Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = .List(i) だけでいいのでしょうか。 Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = .List(i, 0) の方が良いですか? せっかくお時間いただいたのですが、ごめんなさい。 もう一度見ながらステップインを使って一行ずつ実行してみたのですが、2週目のfor〜からリストボックス内の選択が外れてしまい、2行目以降が転記されませんでした。。。 そもそもの設定がだめなんでしょうか。。

関連するQ&A