Excel VBA質問箱 IV

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

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


43019 / 76732 ←次へ | 前へ→

【38774】Re:文字列から漢字のみ取得
回答  Blue  - 06/6/9(金) 20:03 -

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

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