ここから本文です

Excel VBAの質問です。

res********さん

2014/6/1323:53:13

Excel VBAの質問です。

ユーザーフォームのリストボックスで条件に一致した行を表示させるには?

例えば以下の画像ようなシート(データ)があるものとしてA列のデータから野菜を検索して該当する行のA列からC列までの値をリストボックスに表示(登録)していくということはできるのでしょうか。
できるのであればどのようにすればいいでしょうか。

Excel VBA,リストボックス,ListCount,A&quot,データ,ユーザーフォーム,1 To LastRow

閲覧数:
683
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

blu********さん

2014/6/1404:46:38

前もってColumnCountとColumnWidthsが設定してあれば、最初の2行は不要です。


Sub sample()
ListBox1.ColumnCount = 3 '3列(デザイン時か、前もって指定されていれば不要)
ListBox1.ColumnWidths = "30,50,30" '各列の幅(デザイン時か、前もって指定されていれば不要)
Dim ws As Worksheet
Dim lastRow As Long
Dim r As Long
'
Set ws = Sheets("Sheet1") '対象のデータのあるシート
ListBox1.Clear 'リストボックスクリア
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row 'A列最終行
For r = 1 To lastRow '注目行を1行目から最終行まで
If ws.Range("A" & r).Value = "野菜" Then 'もしA列の注目行の値が"野菜"なら
ListBox1.AddItem ws.Range("A" & r).Value 'リストボックスのA列の値を追加
ListBox1.List(ListBox1.ListCount - 1, 1) = ws.Range("B" & r).Value 'リストボックスの最大行(0から始まるのでListCount-1行)の2列目(0から始まるので1)にB列の値に入れる
ListBox1.List(ListBox1.ListCount - 1, 2) = ws.Range("C" & r).Value 'リストボックスの最大行(0から始まるのでListCount-1行)の3列目(0から始まるので2)にB列の値に入れる
End If
Next
End Sub

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる