文字操作 バイナリモードで指定文字列から指定文字を抜き出す(指定文字を除去)
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Function CharacterFindNext(ByVal Character As String, _ ByVal FirstStr As String, ByVal LastStr As String) As String '***************************************************************** 'バイナリモードで指定文字列から指定文字を抜き出す(指定文字を除去) '***************************************************************** 'どちらか一方でも見つからない場合は=""を返します。 '引数LastStrの文字は、引数FirstStrの文字の後から探します。 '引数LastStrは引数FirstStrの文字の次の文字からの検索になります。 '引数LastStrと引数FirstStrの文字は除きます。 Dim i As Long, n As Long i = InStr(1, Character, FirstStr, vbBinaryCompare) If i = 0 Then CharacterFindNext = "": Exit Function n = InStr(i, Character, LastStr, vbBinaryCompare) If n = 0 Then CharacterFindNext = "": Exit Function CharacterFindNext = Mid(Character, i + Len(FirstStr), _ n + Len(LastStr) - (i + Len(FirstStr)) - Len(LastStr)) '<モードの違い> '┌─────────┬───┬────┬────┐ '│内容 │例 │バイナリ│テキスト│ '├─────────┼───┼────┼────┤ '│大文字/小文字 │A/a │異 │同 │ '│全角/半角 │A/A │異 │同 │ '│ひらがな/カタカナ │あ/ア │異 │同 │ '└─────────┴───┴────┴────┘ End Function Private Sub test() Dim a As String a = "ちワYyあ dい うえおちワXxzkoんにちワYyお元気zですか" '「ちワ」は3つ目をヒットさせます。 Debug.Print CharacterFindNext(a, "Xxz", "Yy") 'koんにちワ End Sub |