🧨

全てのシートにあいまい検索するマクロ

2024/08/22に公開

はじめに

全てのシートに、あいまい検索をかけ、ヒットしたシートのセルに移動するマクロを作りました。

用意するもの

検索フォーム
あいまい検索ボタンを最初のシートに設定する。
検索フォームを呼び出すマクロ

検索フォームを呼び出すマクロ

Option Explicit

Sub ボタン3_Click()
    UserForm2.Show
End Sub

検索フォームマクロ

Option Explicit

Private Sub CommandButton1_Click()
    Dim search_word As Variant
    Dim target_word As Variant
    Dim search_word_count As Long
    Dim ws As Worksheet
    Dim start_row, end_row, start_col, end_col, i, j As Long
    start_row = 6
    end_row = 1000
    start_col = 1
    end_col = 40
    Dim h_count As Long
            
    search_word = TextBox1.Value
    target_word = Replace(search_word, " ", "")
    target_word = Replace(target_word, " ", "")
    
    search_word_count = LenB(target_word)
    
    If search_word_count = 0 Then
        MsgBox "文字数0です。スペースだけ、文字列を入力せずに「検索」ボタンを押さないようにしてください"
        Exit Sub
    End If
            
    For Each ws In ThisWorkbook.Sheets
        For i = start_row To end_row
            For j = start_col To end_col
                If ws.Cells(i, j) Like "*" & target_word & "*" Then
                    ws.Select
                    Cells(i, j).Select
                    h_count = h_count + 1
                    Dim result
                    result = MsgBox("検索結果にふさわしい回答ですか?", vbOKCancel)
                    If result = vbOK Then
                        Exit Sub
                    End If
                        
                End If
                
            Next j
        Next i
    Next ws
    If h_count = 0 Then
        MsgBox "検索した結果、ヒットしませんでした"
    End If
    MsgBox "検索結果は以上です"
End Sub

Private Sub UserForm_Initialize()
    
    
End Sub

最後に

あいまい検索をマクロで実装してみました。

Discussion