過去ログ

                                Page     815
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼検索値を含む行をリストボックスに表示させるには  EBA 03/2/28(金) 18:28
   ┗Re:検索値を含む行をリストボックスに表示...  ポンタ 03/3/1(土) 11:19
      ┗Re:検索値を含む行をリストボックスに表示...  EBA 03/3/1(土) 14:01

 ───────────────────────────────────────
 ■題名 : 検索値を含む行をリストボックスに表示させるには
 ■名前 : EBA
 ■日付 : 03/2/28(金) 18:28
 -------------------------------------------------------------------------
   お世話になります。
EXCELVBA初心者のEBAです。
早速ですが質問させていただきたいのです。

下記のようなシート「リスト」があるのですが、ユーザーフォームの
リストボックス1にB列(No)、C列(事務所名)を表示させたのですが、
テキストボックスに検索値(例えば「あ」)を入力してコマンドボタンを
クリックすると、リストボックスの内容が事務所名に「あ」を含むデータが
表示される、ということをやりたいのですが・・・。
アクティブになっているシートは「リスト」ではないのです。
どなたか、ご教授お願い致します。

  A   B     C    
1 協力会社名簿
2 rank    No    事務所名    
3 A  0001    にこーる開発(株)
4 B  0002    ジョディ(株)
5 A  0003    (株)あーのるど設計
6 B  0004    (株)ちゃーりー・ぶらうん
7 B  0005    きあぬ建設
8 A  0006    (株)あめしょー

'=====================================
’リストボックスに最初に表示させるためのコードはこんな感じなのですが・・・。
Private Sub UserForm_Initialize()
  
    Dim LastRow As Long
    Dim i As Integer
    Dim j As Integer
    
    With ListBox1
      .ColumnCount = 2
      .ColumnWidths = "50;200"
    End With
    
    With Worksheets("リスト")
      LastRow = .Range("B2").CurrentRegion.Rows.Count
      For i = 0 To LastRow - 3
        ListBox1.AddItem
          For j = 0 To 1
            ListBox1.Column(j, i) = .Cells(i + 3, j + 2)
          Next
      Next
    End With
End Sub
 ───────────────────────────────────────  ■題名 : Re:検索値を含む行をリストボックスに表示...  ■名前 : ポンタ  ■日付 : 03/3/1(土) 11:19  -------------------------------------------------------------------------
   こんな感じでどうでしょう?

フォームモジュールに貼り付けてお試しください。

Private Sub TextBox1_Change()
  Dim LastRow As Long
  Dim i As Integer
  Dim j As Integer
  Dim k As Integer
  ListBox1.Clear
  With Worksheets("リスト")
    LastRow = .Range("B65536").End(xlUp).Row
    k = 0
    For i = 3 To LastRow
      If InStr(1, .Cells(i, 3).Value, TextBox1.Value) > 0 Then
        ListBox1.AddItem
        For j = 0 To 1
          ListBox1.Column(j, k) = .Cells(i, j + 2)
        Next
        k = k + 1
      End If
    Next
  End With
End Sub
 ───────────────────────────────────────  ■題名 : Re:検索値を含む行をリストボックスに表示...  ■名前 : EBA  ■日付 : 03/3/1(土) 14:01  -------------------------------------------------------------------------
   ▼ポンタ さん:
こんにちは!(^o^)
早速の回答ありがとうございました。
いただいたコードでうまく動きました。
いつも、いつも親切な御指導ありがとうございます。
カメのように遅い歩みの私ですが(カメに失礼・・・?)
これからも頑張りますので宜しくお願いします。m(__)m
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 815