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

A 回答 (1件)

こんにちは。

maruru01です。
Selectedプロパティを使います。
例えば、2番目が選択されていれば
Selected(1) = True
になっていますので、

For i = 0 To List1.ListCount - 1
  If List1.Selected(i) Then
    (ここに処理を書く:配列に格納するなど)
  End If
Next i

という風に選択項目を拾います。
では。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのフリーズ

ノートパソコンでエクセル2003を使用しているとしょっちゅう画面がフリーズしてしまいます。
フリーズ時間は最大で5秒間程で、頻度は5秒~15秒くらいに一回とかなり頻繁です。(普通のA4サイズの書類を作るのに1時間ほど掛かります)
状態としてはフリーズ中はカーソルも止まってしまい、でもその間に入力した文字等は記憶しているらしく、フリーズが解けた瞬間一気に打ち出されるような感じです。
エクセル以外は何の問題もなく、またそのエクセルのファイルを同ネットワーク上にある他のパソコンで操作しても何の問題もないので、自分のパソコンの中のエクセル本体が壊れているかのような状態です。
どなたか助けていただけないでしょうか?
ちなみにこの現象は突然起きるようになりました。

Aベストアンサー

ソフトの不具合が原因です。再インストールをお勧めします。

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

タイトルのとおりなのですが、
ListBoxで、MultiSelectのプロパティを設定後に、
実際の動作で選択された全ての項目を取得する方法を教えてください。

自分でも探してはおりますが、もしよろしければ
ご指導いただけますと幸いです。

くれぐれも、~を見れば分かるでしょ…などといった
中傷的なご返答はご遠慮願います。

よろしくお願いいたします。

Aベストアンサー

回答の簡単のために、ワークシートにリストボックスを1つ貼り付け
プロパティで-1 fmMultiSelectMulti を選ぶ。
ListFilRangeにセル範囲を設定しておく。(注)1行空白行をしておく。
回答の簡単のために、リストボックスの
DblClickイベント(注)に
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim lItem As Long
For lItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lItem) = True Then
Sheet1.Range("A65536").End(xlUp).Offset(1, 0) = ListBox1.List(lItem)
ListBox1.Selected(lItem) = False
End If
Next
End Sub
これで複数選択し、リストボックスの余白行(注)をダブルクリックすると、A列に選択したものが、累積入力される。
(注)あまり自然な設例ではなかったと反省するが、上記コードの回答がメインなので、このままにします。

回答の簡単のために、ワークシートにリストボックスを1つ貼り付け
プロパティで-1 fmMultiSelectMulti を選ぶ。
ListFilRangeにセル範囲を設定しておく。(注)1行空白行をしておく。
回答の簡単のために、リストボックスの
DblClickイベント(注)に
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim lItem As Long
For lItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lItem) = True Then
Sheet1.Range("A65536").End(xlUp).Offset(1, ...続きを読む

Qエクセルで画像を貼り付けるとフリーズしてしまう。

エクセルに画像を貼り付けるとパソコンがフリーズしてしまいます。何故でしょうか?解決方法を教えてください。

OSは、Windows2000です。
エクセルのバージョンは、2003。

Aベストアンサー

Win2000で198MBはちとキツイかな?
エクセルのバージョンが2003というのは、Office2003を入れていると思うのですが、他にアンチウィルス系も動いているのでしょうから、256MBは欲しいですね。

最近似たような質問があって、直接貼り付けるよりも問題のjpegをファイル保存しておき、エクセルの[挿入]→[オブジェクト]で実施したらどうかという回答があったばかりです。このときはワードでしたが、エクセルでもお試しみてはどうですか。

QVBAのListBoxで複数選択してExcelの1つのセルに反映

いつもお世話になります。
出来るか教えて欲しいのですが、

UserFormに「ListBox」と「Commandbutton」があります。
「ListBox」には5つの選択肢がありますが、これを複数選択可に
して、「Commandbutton」をクリックすることにより、
Excelの1つのセルに「ListBox」で選択した項目を反映させることは
出来ますか?

出来る場合どのようにすれば宜しいでしょうか?

Aベストアンサー

ListBoxのSelectedプロパティを使えばどのアイテムが選択されているか確認出来ます

ボタンのクリックイベントで
dim n as integer, s as string
for n = 0 to ListBox1.Count-1
  if ListBox1.Selected( n ) then
    s = s & ListBox1.List( n )
  end if
Next
Range("A2").value = s
といった具合で出来るかと思います

Qエクセルがフリーズ

エクセルで通常の使い方をしているのに、突然マウスポインターがフリーズします
何回もあります。何が原因でしょうか?パソコンはNECのノートです。

Aベストアンサー

¥Windows¥TempフォルダにEXCEL使用に
テンポラリファイルが作成されてれば、
これを削除すると改善されるかも?

むやみに消すとまずいこともありますのでくれぐれも慎重に。

QListViewで複数選択された項目を一度に削除する方法

ListViewで選択された複数のアイテムの値の取得方法と複数選択された項目を一度に削除する方法を教えてください。

Aベストアンサー

サンプルです。
一度に取得はムリなので、ループを使用します。

  Dim itmLvw As ListItem
  Dim i    As Long
  
  '選択されているアイテムの情報を調査
  For Each itmLvw In ListView1.ListItems
    If itmLvw.Selected Then
      Debug.Print itmLvw.Index & "番目が選択されています"
    End If
  Next itmLvw
  
  'リストの後ろの方から、選択されているアイテムを削除
  For i = ListView1.ListItems.Count To 1 Step -1
    Set itmLvw = ListView1.ListItems(i)
    If itmLvw.Selected Then
      ListView1.ListItems.Remove itmLvw.Index
    End If
  Next i

Qエクセルのフリーズとタスクマネージャーの無反応

エクセル使用時たびたびフリーズするので困っています。(多い時は1時間で3回)
質問集で同じような症状が無いか探したのですが、見つからないので質問いたします。

エクセル使用時、リボンやシート見出し、をクリックすると画面の半分が白くなりフリーズすることがあります。
「Alt] 「Ctrl] 「Delete」 を押しても無反応なので、強制終了をします。
再立ち上げ時、セーフモードを選択しても途中で停止してしまうので、通常モードで立ち上げています。(何も無い時はセーフモードで立ち上げることができます。)

1)フリーズの原因と対処法
2)「Alt] 「Ctrl] 「Delete」を押しても反応しない原因と対処法
3)そのあとの再起動時にセーフモードが途中で停止してしまう原因と対処法
分かる方がおられましたら、お教え下さい。

OSはwindows7、office2007
エクセルのサイズは33KBから188KBです。

初めて質問しますので抜けているところがあれば追加します。
よろしくお願いします。

Aベストアンサー

そうですね。。
エクセルの再インストールは、やってみましたか?

Qlistbox:csvファイルから読み出してlist項目に出したい

ソフトのヘルプファイルをvisual basicで作成しようとしております。
csvファイルから読み出してlist項目に出したいです。
1番目のリストで大項目を選び、するとそのリストに応じた2番目のリストが出現。その2番目の小項目リストを選ぶとヘルプ内容が表示されるというものでしす。
あらかじめプログラム中にリストを用意するものはできますが、作成したいのは既存のcsvファイルを活用したものです。
リストに出てくる項目がcsvファイルから読み出されるようにするのが第一歩ですが、調べたり自分でトライしても、成功しません。
どうぞよろしくお願いいたします。

Aベストアンサー

ヘルプファイルが外部ファイルに有るのは拡張性、変更容易性で良いと思います。
しかしCSVファイルはシーケンシャルファイルで、目的に合ったものを探すのに、平均半分程度むだ読みをしなくてはならない点です。
第1項目は人間がみてその中から選ぶから(しかし多いと
分類が必要)良いが、有る項目が選ばれた時、どの小項目
を選べば良いか良いう情報はどうします。
すなわちヘルプの内容によって適切なコード付けでも行われていますか?
WEB照会のように語句でやるのは、本当は難しいアルゴリズムがあるようです。
大項目のCSVファイルと、小項目のCSVファイルは別ファイルですか。両者はコード体系で有機的に結ばれていますか。その辺のありさまで、コードはガラリと様相を変えそうです。
そう言うことを書いていないと言うことは、関心が向いていなくて、それでは具体的なコードまでも教えて欲しいのかもしれないが、私見では有りますが、出来ないでしょう。
ヘルプファイルを作るときに既に検討すべき問題を突き付きつけられているはずです。
参考関連?ヘルプコンテキスト番号(ID)
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200308_03080073.html
http://hp.vector.co.jp/authors/VA014071/tips/help.html

ヘルプファイルが外部ファイルに有るのは拡張性、変更容易性で良いと思います。
しかしCSVファイルはシーケンシャルファイルで、目的に合ったものを探すのに、平均半分程度むだ読みをしなくてはならない点です。
第1項目は人間がみてその中から選ぶから(しかし多いと
分類が必要)良いが、有る項目が選ばれた時、どの小項目
を選べば良いか良いう情報はどうします。
すなわちヘルプの内容によって適切なコード付けでも行われていますか?
WEB照会のように語句でやるのは、本当は難しいアルゴリズム...続きを読む

Qエクセルのカメラの使用時のフリーズ

こんばんは。以前、エクセル2000の不具合という内容でノートPCの欄に質問させていただきましたものですが、明確な原因がわかりましたので再度質問させていただきます。
これは会社のノートパソコン(WIN2K)でエクセル使用時にツールバーにある「カメラ」機能を使うとにフリーズしたり、数字等を入力してエンターキーを押すと12~30秒くらい時間が固まってしまう状況に陥ってしまうため困っています。
カメラで指定範囲を選択して、別の場所に貼り付けるのであくまで画像データとして取り扱われる関係でデータ量が多くなってしまうとは考えられますが、100KBほどのデータでもフリーズ状況に陥ってしまいます。
ちなみに、フリーズ状態の時のCPU使用率はずっと100%となっています。メモリーは256MBで余裕のある環境にあります。このカメラで貼り付けたデータを削除するとスムースに動く様になります。またカメラで貼り付けたエクセルファイルを開いたまま、別のカメラを使用していないエクセルファイルを使用しても、影響が及んでしまいます。
しかし、同じカメラ機能を使ったエクセルファイルを別のパソコンで開くと多少時間はかかりますが、5秒もかからないくらいで動きます。何かカメラの設定などが悪いのでしょうか?エクセルの再インストールと*.xlbファイルの削除は実行しました。長々となってしまいましたが、よろしくお願いします。

こんばんは。以前、エクセル2000の不具合という内容でノートPCの欄に質問させていただきましたものですが、明確な原因がわかりましたので再度質問させていただきます。
これは会社のノートパソコン(WIN2K)でエクセル使用時にツールバーにある「カメラ」機能を使うとにフリーズしたり、数字等を入力してエンターキーを押すと12~30秒くらい時間が固まってしまう状況に陥ってしまうため困っています。
カメラで指定範囲を選択して、別の場所に貼り付けるのであくまで画像データとして取り扱われる関係でデータ量...続きを読む

Aベストアンサー

私は、[カメラ]機能を比較的多用するので、どんな回答が付くか静観していましたが…

「メモリーは256MB」が「余裕のある環境」かどうかは分かりませんが、仰っているような現象を経験したことがありません(昔に Win2000、Excel2000 を使っていたことがありましたが、メモリサイズがどうだったかは忘れました)。
ところで、「100KBほどのデータでもフリーズ状況に陥ってしまいます」とのことですが、この「100KBほどのデータ」というのはどうやって分かったのですか?

QListView 項目の選択/選択解除について

 ListViewに表示する情報が1件しかないとき、その情報が常に選択された状態なので、
困っています。

 1件しかなくても、選択したり、選択を解除したりすることは出来ないのでしょうか?

 または、ListViewでは出来ないけど、他のコントロールなら出来ると言う情報があり
ましたらぜひ教えてください。

 よろしくお願いします。

Aベストアンサー

失礼しました
× HitItem
○ HitTest
でした。

Private Sub Form_Load()
  Dim i    As Integer
  
  With Me.ListView1
    .View = lvwList       '//表示形式:一覧
    .HideSelection = False   '//リストビューがフォーカスを失っても、選択状態を保持する
    .MultiSelect = True     '//複数選択可能
    
    'ダミーデータの登録
    .ColumnHeaders.Add , , "ヘッダ"
    For i = 1 To 10
      Me.ListView1.ListItems.Add , , "Dmy Data" & i
    Next i
 
  End With
End Sub

Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  Dim itmX  As ListItem
  
  With Me.ListView1
    'マウス位置のアイテムを取得
    Set itmX = .HitTest(x, y)
    '取得できたなら未処理
    If Not (itmX Is Nothing) Then
      GoTo PGMEND
    End If
    
    '現在選択中のアイテムを取得
    Set itmX = .SelectedItem
    '取得できなかったなら未処理
    If (itmX Is Nothing) Then
      GoTo PGMEND
    End If
    
    '選択解除
    Set .SelectedItem = Nothing
    itmX.Selected = False
  End With
  
PGMEND:
  Set itmX = Nothing
End Sub

失礼しました
× HitItem
○ HitTest
でした。

Private Sub Form_Load()
  Dim i    As Integer
  
  With Me.ListView1
    .View = lvwList       '//表示形式:一覧
    .HideSelection = False   '//リストビューがフォーカスを失っても、選択状態を保持する
    .MultiSelect = True     '//複数選択可能
    
    'ダミーデータの登録
    .ColumnHeaders.Add , , "ヘッダ"
    For i = 1 To 10
      Me.ListView1.ListItems.A...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報