文字操作 バイナリモードで指定文字列から指定文字を抜き出す(指定文字を除去)

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Function CharacterFindNext(ByVal Character As String, _
ByVal FirstStr As StringByVal LastStr As StringAs 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


 

 

 

2000年01月01日|[VBサンプルコード]:[文字操作]