Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43020 / 76735 ←次へ | 前へ→

【38776】Re:文字列から漢字のみ取得
お礼  mam  - 06/6/9(金) 20:53 -

引用なし
パスワード
   ▼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

2 hits

【38762】文字列から漢字のみ取得 mam 06/6/9(金) 16:48 質問
【38763】Re:文字列から漢字のみ取得 Blue 06/6/9(金) 16:58 発言
【38773】Re:文字列から漢字のみ取得 mam 06/6/9(金) 18:38 お礼
【38774】Re:文字列から漢字のみ取得 Blue 06/6/9(金) 20:03 回答
【38776】Re:文字列から漢字のみ取得 mam 06/6/9(金) 20:53 お礼

43020 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free