Step6 ファイル内に含まれる指定文字列を検索する

文字列の検索はInStr関数を使います。InStr関数の構文は、InStr(検索開始位置 , 検索対象の文字列 , 検索する文字列 , 比較モード)になります。Do~Loopステートメントを使い、見つからなくなるまでファイル内を検索します。




Homeに戻る > 含む/含まない文字列検索ソフトのメニューに戻る

以前のコードのバグ修正

ファイル一覧を表示するセル位置が、一つ下の行でないといけないので、検索開始ボタンのクリックイベントを下記のVBAコードに変更してください。

    If Range("B5") = "" Then
        Beep
        MsgBox "検索フォルダを指定してください。"
        Range("B5").Activate
    Else
        ExFolderSearch Range("B5"), 3, 8
        MySearchStart 3, 8
    End If

はじめに一つ目の文字だけを検索します

下記のコードを、前回作成したMyFileSerachプロシージャの宣言文に追加します。

    Dim lpos As Long
    Dim smoji As String
    Dim n As Long
    Dim lcoun As Long

下記のコードを、MyFileSerachプロシージャのコードの後ろに追加します。

    smoji = Cells(2, 10)
    lcoun = 0
    lpos = 1
    Do
        n = InStr(lpos, buf, smoji)
        If n > 0 Then
            lcoun = lcoun + 1
            lpos = n + 1
        Else
            Exit Do
        End If
    Loop

流れは下記になります。
1)smojiに一つ目の文字を代入します。
2)InStr関数で、lpos文字目から検索します。
3)見つかればカウントし。lposを見つかった文字位置+1にします。 見つからなければループを抜けます。


見つかった個数をセルに表示します

下記のVBAコードを上のコードの下に追加してください。

    Cells(lr, 10) = lcoun

これで検索対象ファイルと検索文字の交わるセルに、見つかった個数が表示されます。
セルに検索で見つかった個数が表示される

Homeに戻る > 含む/含まない文字列検索ソフトのメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved