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

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

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

Option Explicit


Function CharacterFind(ByVal Character As String, _
ByVal FirstStr As StringByVal LastStr As StringAs String
'****************************************************
'バイナリモードで指定文字列から指定文字を抜き出す
'****************************************************
'どちらか一方でも見つからない場合は=""を返します。
'引数LastStrの文字は、引数FirstStrの文字の後から探します。
'引数LastStrは引数FirstStrの文字の次の文字からの検索になります。
Dim i As Long, n As Long
i = InStr(1, Character, FirstStr, vbBinaryCompare)
If i = 0 Then CharacterFind = "": Exit Function
n = InStr(i, Character, LastStr, vbBinaryCompare)
If n = 0 Then CharacterFind = "": Exit Function
CharacterFind = Mid(Character, i, n + Len(LastStr) - i)
'<モードの違い>
'┌─────────┬───┬────┬────┐
'│内容              │例    │バイナリ│テキスト│
'├─────────┼───┼────┼────┤
'│大文字/小文字     │A/a   │異      │同      │
'│全角/半角         │A/A  │異      │同      │
'│ひらがな/カタカナ │あ/ア │異      │同      │
'└─────────┴───┴────┴────┘
End Function


Private Sub test()
Dim a As String
a = "ちワあ  dい うえおちワkoんにちワお元気zですか"
'「ちワ」は3つ目をヒットさせます。
Debug.Print CharacterFind(a, "ko", "ちワ")
'koんにちワ
End Sub

 

 

 

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