VBA講座 レッスン1 ユーザーフォームの作成

検索フォーム

縦に並んだデータを検索するのは目の負担になりますね。
そんなとき、簡単に検索できるプログラムをご紹介しましょう。

このプログラムシートにデータをコピーして検索してもよし、
このシートをデータのあるBookに追加しても使用できるようにしています。


フォームの作り方から解説します。

VBAエディタからユーザーフォームを挿入します。



フォームの大きさを余り大きくならないように作成します。

フォームやコントロールにはそれぞれプロパティがありますのでCaptionを変更して表示名を変更しましょう。



このシートに検索ボタンを配置します。ボタンを押すと検索ボックスが表示されます。

検索する列番号を検索列に入れます。初期値は2にしています。

変更する場合はTextBoxのTextプロパティの値を変更します。


検索文字を入力し、検索ボタンを押すと検索されます。

最終行が1000になっていますので、データ件数が1000を超える場合はWsEndを変更してください。



プログラムはシートのコマンドボタンにこのコードを入力

【注意】UserForm3の名前は作成した名前に変更してください。

Private Sub CommandButton1_Click()
    UserForm3.Show 0
End Sub

フォームプロシージャーには下記のコードを入れます。
【注意】TextBox3とTextBox4の名前は作成した名前に変更してください。

Private Sub CommandButton1_Click()

Dim WB As Workbook
Dim WS As Worksheet
Dim nCol As Long
Dim WsEnd As Long

Set WB = ActiveWorkbook
Set WS = ActiveWorkbook.ActiveSheet

nCol = TextBox4
WsEnd = 1000
        
    If TextBox3 <> "" Then
        lenStr = Len(TextBox3)
        For i = 2 To WsEnd
            
            MyPos1 = InStr(WS.Cells(i, nCol), TextBox3)
            If MyPos1 > 0 Then
                ActiveWindow.ScrollRow = i
                
                msg = MsgBox("続けますか?", 1)
                If msg = 2 Then Exit Sub
            End If
            
        Next i
        
        MsgBox ("見つかりません")
        Exit Sub
    End If

End Sub

上級レッスン1 ダウンロードはこちら