Microsoft Access 掲示板

検索文字列にハイライト 検索文字が複数に対応したい / 3

12 コメント
views
4 フォロー
3

あっ、すみません。修正前のコードをアップしてしまいました。

s = Replace(s, i, "<font style='background-color:" & 色 & ";'>" & s & "</font>")
の部分を下記に修正してください。
s = Replace(s, i, "<font style='background-color:" & 色 & ";'>" & i & "</font>")

上の回答も修正しておきました。

通報 ...
  • 4
    チョコラブ 2022/10/01 (土) 20:36:36 9af1b@d60f0 >> 3

    複数検索文字がハイライトできました!ありがとうございます。

    ですが、検索文字が増えるたび、スペースが一つ空くと1行改行されてしまいます。
    おそらく検索文字列にスペースが入ってしまっているからだと思うのですが、
    検索文字が3つあれば、2行改行されてしまうのですがそれはどうしたらいいでしょう?

    検索文字が増えても改行せずにしたいです。

  • 5

    あっ、またまたすみません。
    SearchHighlight関数を下記に修正してください。

    Public Function SearchHighlight(フィールド, 検索文字列, Optional 色 As String = "#ffff00") As String
        Dim s As String
        s = Nz(フィールド)
        If s = "" Then Exit Function
        If Nz(検索文字列) = "" Then
            SearchHighlight = s
            Exit Function
        End If
        Dim color As String
        Dim i
        s = Replace("<p>" & s & "</p>", Chr(13), "</p><p>")
        For Each i In Split(検索文字列)
            s = Replace(s, i, "<font style='background-color:" & 色 & ";'>" & i & "</font>")
        Next
        SearchHighlight = s
    End Function
    
    6
    チョコラブ 2022/10/02 (日) 08:40:27 a1353@d60f0 >> 5

    思うとおりの動きができました!
    ありがとうございます。

    勉強になりました。