|
▼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
|
|