文字操作 バイナリモードで指定文字列から指定文字を抜き出す
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Function CharacterFind(ByVal Character As String, _ ByVal FirstStr As String, ByVal LastStr As String) As 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 |