よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

■13321 / 12階層)  Excel(エクセル) VBA入門:検索結果をリストボックスに表示する
□投稿者/ よねさん -(2018/10/23(Tue) 10:54:14)
    氏名、住所、郵便番号、都道府県、電話番号、年齢をキーとした例です。
    それぞれユーザーフォームにテキストボックスを追加しています。
    
    '検索を実行します。部分一致検索を行っています。
    Private Sub CommandButton1_Click()
    Dim lastRow As Long
    Dim myData, myData2(), myno
    Dim i As Long, j As Long, cn As Long
    
    Dim key1 As String, key2 As String, key3 As String, key4 As String, key5 As String, key6 As String
        '氏名
        If TextBox1.Value = "" Then key1 = "*" Else key1 = "*" & TextBox1.Value & "*"
        '住所
        If TextBox2.Value = "" Then key2 = "*" Else key2 = "*" & TextBox2.Value & "*"
        '郵便番号
        If TextBox3.Value = "" Then key3 = "*" Else key3 = "*" & TextBox3.Value & "*"
        '都道府県
        Dim ListNo As Long
          ListNo = ComboBox1.ListIndex
              If ListNo < 0 Then
                  key4 = "*"
              Else
                  key4 = ComboBox1.List(ListNo)
              End If
    
        '電話番号
        If TextBox4.Value = "" Then key5 = "*" Else key5 = "*" & TextBox4.Value & "*"
        '年齢
        If TextBox5.Value = "" Then key6 = "*" Else key6 = TextBox5.Value
    
    
    '検索するデータを配列 myData に格納しています。
    With Worksheets("Sheet1")
    lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
    myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 11).End(xlUp)).Value
    End With
    
    '配列 myData の中で検索で一致したデータを配列 myData2 に格納しています。
    ReDim myData2(1 To lastRow, 1 To 7)
    For i = LBound(myData) To UBound(myData)
          If myData(i, 2) Like key1 And myData(i, 7) Like key2 And myData(i, 5) Like key3 And myData(i, 6) Like key4 And myData(i, 11) Like key5 And myData(i, 10) Like key6 Then
    
    
    cn = cn + 1
    myData2(cn, 1) = myData(i, 1) '連番
    myData2(cn, 2) = myData(i, 2) '氏名
    myData2(cn, 3) = myData(i, 3) 'カタカナ
    myData2(cn, 4) = myData(i, 5) '郵便番号
    myData2(cn, 5) = myData(i, 7) '住所
    myData2(cn, 6) = myData(i, 11) '電話番号
    myData2(cn, 7) = myData(i, 10) '年齢
    End If
    Next i
    
    '検索で一致したデータをリストボックスに表示します。
    With ListBox1
    .ColumnCount = 7
    .ColumnWidths = "20;70;70;30;150;70;30"
    .List = myData2
    End With
    
    End Sub

記事引用 削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[11]: Excel(エクセル) VBA入門:検索.. /やーまん →Re[13]: Excel(エクセル) VBA入門:検索.. /やーまん
 
上記関連ツリー

Nomal Excel(エクセル) VBA入門:検索結果をリ.. / なお Mail (18/09/19(Wed) 12:52) #13296
Nomal Re[1]: Excel(エクセル) VBA入門:検索結.. / よねさん (18/09/19(Wed) 14:22) #13297
  └Nomal Re[2]: Excel(エクセル) VBA入門:検索結.. / なお Mail (18/09/20(Thu) 18:35) #13298
    └Nomal Re[3]: Excel(エクセル) VBA入門:検索結.. / よねさん (18/09/21(Fri) 07:46) #13299
      └Nomal Re[4]: Excel(エクセル) VBA入門:検索結.. / なお Mail (18/09/25(Tue) 13:16) #13300
        └Nomal Re[5]: Excel(エクセル) VBA入門:検索結.. / よねさん (18/09/25(Tue) 15:32) #13301
          └Nomal Re[6]: Excel(エクセル) VBA入門:検索結.. / なお Mail (18/09/25(Tue) 17:21) #13302
            └Nomal Re[7]: Excel(エクセル) VBA入門:検索結.. / よねさん (18/09/25(Tue) 17:51) #13303
              └Nomal Re[8]: Excel(エクセル) VBA入門:検索結.. / よねさん (18/09/26(Wed) 07:50) #13304
                └Nomal Re[9]: Excel(エクセル) VBA入門:検索結.. / やーまん (18/10/23(Tue) 00:37) #13316
                  └Nomal Re[10]: Excel(エクセル) VBA入門:検索.. / よねさん (18/10/23(Tue) 08:36) #13318
                    └Nomal Re[11]: Excel(エクセル) VBA入門:検索.. / やーまん (18/10/23(Tue) 09:37) #13319
                      └Nomal Excel(エクセル) VBA入門:検索結果をリ.. / よねさん (18/10/23(Tue) 10:54) #13321 ←Now
                        └Nomal Re[13]: Excel(エクセル) VBA入門:検索.. / やーまん (18/10/23(Tue) 17:09) #13324
                          └Nomal Re[14]: Excel(エクセル) VBA入門:検索.. / よねさん (18/10/24(Wed) 07:11) #13325
                            └Nomal Re[15]: Excel(エクセル) VBA入門:検索.. / やーまん (18/10/25(Thu) 17:03) #13332

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -