|
▼Blue さん:
コードの再掲示ありがとうございます。
なんせ、、先のコードを一つ一つ追っかけては、深み(?)に
入り、中々本題にまで進めておりません。
>> .Pattern = "([一-龠])"
↑この部分に指定されている文字すらなんだか、さっぱりで
たどり着いたところが「メタキャラクタ」
ふむふむ、、といった感じの進捗です。
以下のコードで意図している操作は出来そうです。
「々」の細かい点にまで、実装して頂きました様で、
本当にありがとうございました。
今後ともご指導よろしくお願いします。
本日はこれにて帰宅して来週から、また奮起したいと思います。
>▼mam さん:
>> 今更ですが、
>> ex:ブック名
>> (1G)鈴木ファイル.xls → 鈴木 のみ抽出
>> (2G)佐々木ファイル1.xls → 佐々木 のみ抽出
>> (3G)岡ファイル.xls → 岡 のみ抽出
>でしたら、
>
>> .Pattern = "([一-龠])"
>を
>.Pattern = "([一-龠]+)"
>とすることで連続した漢字は取得できます。
>ただ、佐々木の繰り返し文字の「々」はどうも漢字ではないと認識されてしまうようです。
>
>なので、例外的に
>.Pattern = "([一-龠|々]+)"
>としておいてください。(ほかにもあるかもしれませんけど)
>
>以下サンプル)
>
>Sub sample()
> MsgBox GetNameStr("(1G)鈴木ファイル.xls")
> MsgBox GetNameStr("(2G)佐々木ファイル1.xls")
> MsgBox GetNameStr("(3G)岡ファイル.xls")
>End Sub
>
>' ファイル名から、先頭から探して最初の連続した漢字文字列を取得する
>' ない場合は空文字。
>Private Function GetNameStr(ByVal strFileName As String)
> Dim objMatchs As Object
> Dim objMatch As Object
> Dim strTarget As String
>
> With CreateObject("VBScript.RegExp")
> .Pattern = "([一-龠|々]+)"
> .Global = True
> Set objMatchs = .Execute(strFileName)
> For Each objMatch In objMatchs
> GetNameStr = objMatch.Value
> Exit Function
> Next
> End With
>End Function
|
|