• 締切済み

リストボックスからの複数選択

初心者です。 ListBoxで複数の項目を選択することは可能でしょうか? ListBoxのプロパティ MultiSelect を 標準or拡張 にすると 複数選択できることは分かりましたが、選択(強調表示)した 値のみを取得するにはどうしたらよいのでしょうか?

  • kudo1
  • お礼率85% (17/20)

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 Selectedプロパティを使います。 例えば、2番目が選択されていれば Selected(1) = True になっていますので、 For i = 0 To List1.ListCount - 1   If List1.Selected(i) Then     (ここに処理を書く:配列に格納するなど)   End If Next i という風に選択項目を拾います。 では。

関連するQ&A

  • Excel マクロ リストボックス複数選択

    いろいろ拝見させていただいているのですが 理解が低いのが原因で困っています。 データのシートがあります。 ・B列には、起点となる人の名前が記載(300名ほど) ・データの入っている列は、A:CE データシートでB列にてオートフィルタをかけ 抽出シートに転記したい。 抽出シートでは、ユーザーフォームを組みました。 オプションボタン1 単一選択 オプションボタン2 複数選択 オプションボタン3 拡張選択 リストボックス(2・3に対して) コマンドボタン   終了 とした場合、単一選択はできたのですが 複数選択の場合 該当数が「0」の表記となってしまい、うまくいきません。 同じような質問が…というお返事があることを承知でお伺いしています。 いただいた回答を基に、勉強をしていきたいと思っていますので なにとぞよろしくお願い申し上げます。 Private Sub UserForm_Initialize() ListBox1.ColumnCount = 1 'リストボックスの列は1 ListBox1.BoundColumn = 0 'ListIndexの値(行数)を使用する ListBox1.MultiSelect = 0 '最初は単一選択状態にする ListBox1.RowSource = 'リストのソース ListBox1.ColumnHeads = True '列見出し表示 OptionButton1.Value = -1 'オプションボタン1を選択状態にする End Sub Private Sub OptionButton1_Click() ListBox1.MultiSelect = fmMultiSelectSingle '単一選択状態にする End Sub Private Sub OptionButton2_Click() ListBox1.MultiSelect = fmMultiSelectMulti '複数選択状態にする End Sub Private Sub OptionButton3_Click() ListBox1.MultiSelect = fmMultiSelectExtended '拡張(連続)選択状態にする End Sub Private Sub ListBox1_Click() 'リストボックスがクリックされたとき(単一選択) Dim 条件 As String 条件 = UserForm1.ListBox1.Text '氏名 With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End Sub Private Sub CommandButton1_Click() '選択終了ボタンがクリックされたとき(複数・拡張選択) Dim 条件 As String Dim lastRow As Long With ListBox1 If .ListIndex = -1 Then Exit Sub '何も選択されていない For 条件 = 0 To .ListCount - 1 If .Selected(条件) Then '行選択あり With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End If Next End With End Sub Private Sub UserForm_Deactivate() Unload UserForm1 '×ボタンを押したら、ユーザーフォームのunloadをする End Sub

  • 複数リストボックスの連動について

    複数リストボックスの連動についてお聞きします。 エクセル2003、VBAのユーザーフォームのリストボックスになります。 VBAに関わらずプログラミング全般初心者で恐縮ですが よろしくご指導ください。 毎月の明細から 地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。 ListBox1(地域),ListBox2(支店)に値を重複無しに、組み合わせを表示させるまではできたのですが、 ListBox1(地域)の選択を解除した後に、再び選択すると、 ListBox2(支店)の値が重複して表示されてしまいます。 ネットで知恵を探したのですが、 ListBox1のクリックイベント時に、ListBox2の値を消す しか見つからず、自分の課題がどうしても解決できません。 どのような方向性で考えれば、解決できるのか教示いただきたいです。 自分としては、ListBox1の選択を解除したときに、 対応するListBox2が消えればと考えましたが・・・全くうまくいきません。 もし、自分の考えが的外れでしたら、正しい考え方をお教えいただきたいです。 考えが妥当であれば、どういう記述をすべきなのか、 教授願いたいです。 よろしくお願いします。

  • リストボックスのプロパティ「複数選択」の「標準」「拡張」の違い

    アクセス(2003)のリストボックスのプロパティ「複数選択」の 「標準」と「拡張」は何が違うのでしょうか? 左下の補足?が出るバーには 「リストボックスで複数の項目を選択できるかどうかを指定します」 とどちらとも記載されていますが、結局は同じなのですか? 複数選択したい場合はとりあえず「標準」を選択しとけばOKでしょうか? よろしくお願いします。

  • リストボックスから複数行を選択し、その複数のデータをセルに入力したい

    Excel2003でマクロをつくっています。シートのB列を右クリックすると、リストボックスが表示され 任意1行を選択するとシートのB列、C列、D列のセルにデーターが入力されます。 Private Sub ListBox2_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ’シートが保護されていたら保護を解除 If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If 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) ActiveSheet.Protect End If End With Unload UserForm3 End Sub このリストボックスから複数の行を選択し、シートのB列、C列、D列のセルにデーターを入力したいのですが、Multiselectプロパティを変更しても、一行のみしか入力できません。 上のコードをどうかえたらよろしいでしょうか。

  • ExcelVBAのLISTBOXから複数行選択された項目を取得する方法

    タイトルのとおりなのですが、 ListBoxで、MultiSelectのプロパティを設定後に、 実際の動作で選択された全ての項目を取得する方法を教えてください。 自分でも探してはおりますが、もしよろしければ ご指導いただけますと幸いです。 くれぐれも、~を見れば分かるでしょ…などといった 中傷的なご返答はご遠慮願います。 よろしくお願いいたします。

  • FileListBoxでの複数ファイル選択

    FileListBoxコントロールのMultiSelectプロパティを「2-拡張」にして、 CtrlやShiftを併用することでファイルを複数選択できるようにしました。 とりあえず動作確認段階なので、ファイル選択状態でCommandButtonを押下することで、ファイル名を表示するようにしたいのですが、 Msgbox (File1.FileName) ※File1はFileListBoxコントロール名 では、当たり前の事ながら、(複数選択したうちの)1ファイルしか表示されません。FileNameプロパティにインデックスを付けるなど素人考えで色々当たってみたのですが、どうも上手くいきません。 選択した全てのファイル名をフルパスで取得したいのですが、何かいいテクニックはないでしょうか?

  • EXCELリストボックスの複数値の取得

    EXCELのリストボックスの複数選択又は拡張選択の値の取得方法がわかりません。 下図は単一選択で行った場合です。 この時、複数選択又は拡張選択を選んだ場合の「リンクするセル」の設定がわかりません。 VBAを使用しない方法で値を取得したいのです。 わかる方、教えて下さい。

  • 複数選択のListBoxでClickイベントが拾えません

    VBAのフォーム上で、複数選択ができるListBox1を作っています。 ListBox1を選択する度に、ListBox2へListBox1の選択内容で 絞り込んだListBox2のリストを作るという処理をしたいのですが、 ListBox1_ClickイベントでListBox1のリストクリック時に 何も反応がありません。 .MultiSelect = fmMultiSelectSingle で指定した複数リストボックスはClickイベントが拾えないのでしょうか? ListBox1リスト内のデータ選択・解除の度にイベントが 発生するようにしたいです。 宜しくお願いします。

  • [Delphi]タブコントロールでタブを複数選択したい

    Delphi7/WindowsXPです。 TTabControlで、デザインがタブ形式(Style=tsTabs)で、タブ複数選択可能(MultiSelect=True)を有効にする方法はありますでしょうか? 各タブにはグループ別に分けられたデータリストがListViewで表示されているプログラムで、複数のグループの選択指定を取得したいのですが、TabControlのMultiSelectプロパティは、Styleが"tsButtons"か"tsFlatButtons"のときしか有効にならないようです。 タブ形式で複数選択ができれば、TTabControlコンポーネントにはこだわりません。 どなたかご存知の方がいらっしゃれば、アドバイスをお願いいたします。

  • 複数選択可能なリストボックスを使いたい

    リストボックスで複数選択された項目を配列によってPHPファイルに受け渡し、この配列を使ってselect文を書く方法についてご教示ください。 たとえば、都道府県名のリストボックスから「東京都」「大阪府」「兵庫県」を選択したら、これら3都府県のOR検索が可能となるようなselect文の書き方を知りたいのです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP