• ベストアンサー

リストボックスで選択した一行を一度にセルに入力したい

Xcel2003でマクロ作成中です。以下のコードで、リストボックスで一行を選択しました。この選択した一行のデータのうち2個のデータをC列とD列に入力することができました。が、E列にもデータを入力したいのです。が色いろやってみましたができません。 Private Sub ListBox2_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox2.list(ListBox2.ListIndex, 0) ActiveCell.Offset(0, 1).Value = ListBox2.list(ListBox2.ListIndex, 1) End If End With Unload UserForm3 End Sub 上のコードにどう追加記入したらよろしいでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>、E列にもデータを入力したいのです E列には何を入れたいのですか。リストボックスが3列になっていて、選択した行の、3列目をE列に入れたいのか。 同じ延長ではないのですか。なぜ聞くのか。 -- A.受けるセル C-D-Eだから ActiveCell.Offset(0, 1).Value =ー>ActiveCell.Offset(0, 2).Value = B.3列目を採る 下記をやってみてテスト確認し、質問者の場合にあわせ修正のこと。 Private Sub ListBox1_Click() i = ListBox1.ListIndex MsgBox ListBox1.Column(3 - 1, i) End Sub ーーー 下記でテスト確認 エクセルです D1:F3 a x u b y v c z w シートに直接LISTBOXを1つ張り付け プロパティのListFilrangeにD1:F3 ーー 操作 ListBoxのbの行をクリック Msgboxでvが表示される。

aitaine
質問者

お礼

今調べましたらrowsorceの記述が間違ってました。解決できました。 ありがとうございました。

aitaine
質問者

補足

ご回答ありがとうございます。 1)シートのC列の任意のセルを右クリックすると、ListBox2が表示されるようにしてあります。 2)ListBox2のプロパティ欄のColumnCountにはちゃんと3とかかれていますが、表示されたリストボックスにはC列とD列しか表示されていません。E列が表示されていないのです・・ 3)やりたいことはC列右クリック→リスト表示→リスト項目選択→C列・D列およびE列に同時にセルに入力することです。 C-D-Eだから ActiveCell.Offset(0, 1).Value =ー>ActiveCell.Offset(0, 2).Value =   この部分と以下のテストについて超初心者の理解ができず申し訳ありません。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

ListBox2の列が3列以上あって、カーソルがC列にあれば、End Ifの前に下記を追加すれば、E列に入るが、ActiveCellがC列じゃなければ、ActiveCellのところに行く。 ActiveCell.Offset(0, 2).Value = ListBox2.List(ListBox2.ListIndex, 2)

aitaine
質問者

お礼

今調べましたらrowsorceの記述が間違ってました。解決できました。 ありがとうございました。

aitaine
質問者

補足

ご回答ありがとうございます。次のように変更しました。 ActiveCell.Value = ListBox2.list(ListBox2.ListIndex, 0) ActiveCell.Offset(0, 1).Value = ListBox2.list(ListBox2.ListIndex, 1) ActiveCell.Offset(0, 2).Value = ListBox2.List(ListBox2.ListIndex, 2) すると「実行時エラー  listプロパティの値が取得できません。引数が無効です」の表示がでてしまいました。駄目でした。

関連するQ&A