• ベストアンサー

リストボックスの全ての値を取得するには?

エクセルのシート上のリストボックスに あああ いいい が表示されてるとして、 その二つの値をコマンドボタンを押した際に取得したいのですが Private Sub cmd_取得_Click() MsgBox Me.ListBox1.Value End Sub だと現在リストボックスで選択中の値しか取得されません。 リストボックスであああが選択中なら、 あああしか返ってきません。 あああ、いいいをVBAで取得する方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

msgbox join(application.transpose(me.listbox1.list), vblf) とか。

ppfjvghcezbmk
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

Private Sub CommandButton1_Click() Dim I As Integer For I = 1 To ListBox1.ListCount MsgBox ListBox1.List(I - 1) Next I End Sub といった感じでいいです。

ppfjvghcezbmk
質問者

お礼

ありがとうございました。

関連するQ&A

  • VB2008リストボックスの値が取得できません

    リストボックスのITEMプロパティで文字列を追加後、コマンドボタン押下時にリストボックスの値を取得したいのですが、リストボックスの値が取得できません ソースは下記のようになっています Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(ListBox2.SelectedItem) End Sub End Class アドバイスお願いします

  • リストボックス

    すいません以下の処理に困っております。 リストボックスで値を取得して他のリストボックスにその値を 出力したいのですがまったくできません。 <例> リストボックス1 a b c リストボックス2(上で選択した値を出力) a ちなみに構文は、 ------------------------------------------------------------ Private Sub btn選択_Click() ListBox2.Text = ListBox1.Text 'ListBox1.ListIndex + 1 & ": " & ListBox1.Text End Sub Private Sub CommandButton1_Click() End Sub Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) btn選択_Click End Sub Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean) btn選択_Click End Sub Private Sub UserForm_Initialize() With ListBox1 .AddItem "スケジューラ" .AddItem "データ変換" .AddItem "DWH Server" .AddItem "PPP Server" .AddItem "ファイヤーウォール" .AddItem "暗号オプション" End With End Sub ---------------------------------------------------- 初心者でまったくできません。 御教授をお願いします。

  • リストボックスの値を拾うには

    リストボックスの値を拾うには 以下のボタンコマンドでListBox1のListIndexから配列二番目の値を「hinban」という変数に取り込みたいのですがうまくいきません。 「hinban = ListBox1.List(ListBox1.ListIndex, 1)」という行を書いてみましたが 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とアラートが出てしまいます。 VBA初心者です。 解決法を教えてください。 Private Sub CommandButton1_Click() Dim lastRow As Long Dim i As Integer With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'For i = 1 To 3 '.Cells(lastRow, i).Value = ListBox1.List(ListBox1.ListIndex, i - 1) hinban = ListBox1.List(ListBox1.ListIndex, 1) 'Next i End With End Sub

  • リストボックスから項目を選択してセルに入力したいのです

    EXcel2003でマクロ作成中です。エクセルシートのN列を右クリックすると、ユーザーォームが現れ、その中のリストボックスから項目を選択すると選択文字が白色に反転します。 ユーザーホームの下方に設置した「入力する」ボタンをクリックする、アクティブセルにテキスト文字列が挿入されます。 Option Explicit Private Sub CommandButton1_Click() With ListBox1 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox1.list(ListBox1.ListIndex) End If End With Unload UserForm1 End Sub --------------------------- Private Sub CommandButton2_Click() Unload UserForm1 End Sub ------------------------------ これと同じものをB列につくりました。エクセルシートのB列を右クリックすると、リストボックスが表示されますが、その中の項目を選択しようとすると、一瞬にしてユーザーフォーム自体が消えてしまい項目を 選択できません。 Private Sub CommandButton1_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox2.list(ListBox2.ListIndex) End If End With Unload UserForm2 End Sub ----------------------------- Private Sub CommandButton2_Click() Unload UserForm2 End Sub ------------------------------------------ まったく同じものを作って内容だけかえたのですが、できません。 どうしてでしょうか?ご教授おねがいします。

  • シート上のリストボックスに値を表示するには?

    エクセル2003です。 コントロールツールボックスからシートにリストボックスを設置しました。 ここに値を指定するにはどうすればいいでしょうか? フォーム上のリストボックスなら Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!a2:a3" End Sub とすればいいのですが シートのイベントにInitializeはありません。 どこのイベントプロシージャーに 「リストボックスに値を表示する」というコードを書けばいいのでしょうか? シートモジュールにに Private Sub ListBox1_Click() UserForm1.ListBox1.RowSource = "Sheet1!a2:a3" End Sub としても何も起こりません。 できればファイルを開いた時からリストボックスに値を表示させるようにしたいです。 ご教授よろしくお願い致します。

  • フォームのリストボックスに値を表示させたい

    VBA フォームのリストボックスに値を表示させたい A1→aaa A2→bbb リストボックスに上記の値を表示させたいなら、 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!A1:A2" End Sub で出来ますが、シート上のセルで表示する値を指定するのではなく、VBA上で、リストボックスに表示させる値を指定したいのです。 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "aaa,bbb" End Sub を実行すると、VBA実行時エラー380になってしまいます。 UserForm1.ListBox1.RowSource = "aaa;bbb" もダメでした。 ご回答よろしくお願いします。

  • リストボックスにシートの値を表示させたいのですが

    vbaでシートのリストボックスにシートの値を表示させたいのですが シートモジュールでこのコードを実行しようとしてもエラーになり出来ないのですが どこが間違ってますか? Sub リストボックスに値を表示する() Me.ListBox1.RowSource = Range("c1:c10").Value End Sub Me.ListBox1.Value = Range("c1:c10").Value もエラーになりました。

  • エクセルでのリストボックスの値の取得

    早速ですが、エクセルでユーザーフォーム上にある リストボックスの複数選択した時の値の取得方法を教えてください。 具体的にはアンケート集計をするためのフォームで "Q6"というワークシートのA列に「項目名」、B列に「数」を 1行目から設定しています(「数」の初期値は"0"です)。 ユーザーフォームのリストボックスにはA列を表示させています。 そのユーザーフォーム上にあるコマンドボックスに 下記のようにコード記述しても、一番上の選択されたものしか"Q6"に 反映されません(2,3,4行目を選択しても2行目の「数」のみ+1になる)。 Private Sub CommandButton1_Click()  For n = 0 To ListBox1.ListCount - 1   If ListBox1.Selected(n) = True Then    Worksheets("Q6").Cells(n + 1, 2) = _    Worksheets("Q6").Cells(n + 1, 2) + 1   End If  Next n End Sub エクセルは97で、リストボックスのMultiSelectはMultiでもExtendedでもダメでした。 どなたかご存知の方がいらっしゃいましたらよろしくお願いします。

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

    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 上のコードにどう追加記入したらよろしいでしょうか?

  • Listindexの値が上手く取得できません。

    VBA初心者です。的外れな質問をしている場合にはご容赦ください。 まず ユーザーフォームを表示した時に、 Private Sub UserForm_Initialize() Set ws1 = Worksheets("s1") Set gui2 = 銘柄コードから検索 gui2.ListBox1.AddItem "銘柄コードで検索" gui2.ListBox1.AddItem "銘柄名で検索" gui2.ListBox1.AddItem "銘柄カナで検索" End Sub とリストボックスの各項目を作成しました。 Listboxをクリックした時にlistindexを「リストの数」に格納 する(自分のイメージ) Private Sub ListBox1_Click() Set gui2 = 銘柄コードから検索 Set ws1 = Worksheets("s1") Dim リストの数 As Integer リストの数 = gui2.ListBox1.ListIndex End Sub (自分のイメージ)コマンドボタン2をクリックすると 現在選択されているListbox1のListindexが「リストの数」 に格納されているので、次のSelect文の動きをすると思っています。 Private Sub CommandButton2_Click() Set gui2 = 銘柄コードから検索 Dim リストの数 As Integer リストの数 = gui2.ListBox1.ListIndex Select Case リストの数 Case 0 MsgBox リストの数 Call 銘柄コードで検索 TextBox1.Text = "" gui2.TextBox1.SetFocus Case 1 MsgBox リストの数 Call 銘柄名で検索 MsgBox リストの数 TextBox1.Text = "" gui2.TextBox1.SetFocus Case 2 MsgBox リストの数  Call 銘柄カナで検索 TextBox1.Text = "" gui2.TextBox1.SetFocus End Select End Sub コマンドボタン2をクリックした場合に、ListIndexの値を判断し、Select文 の条件どおりに動作させるためには、どのようにしたらよいでしょうか? EXCEL2000 を使っています。

専門家に質問してみよう