Dim myReg As Object
Dim st As String, ss As String
Dim v As Variant
Set myReg = CreateObject("VBScript.RegExp")
myReg.Pattern = "[^0-9]+"
myReg.Global = True
st = "ア-12-50-123山田浩輔&ABCD-2"
ss = st
For Each v In myReg.Execute(st)
ss = Replace(ss, v.Value, StrConv(v, vbNarrow))
Next
MsgBox st & vbLf & ss
Set myReg = Nothing
こんな感じの事でしょうか?
補足
回答ありがとうございました。 いまいち結果が不安定です。 下記の2つですが、全角カッコの半角化が前者の"(" が半角になっていません。 2と2の違いだけで結果が異なるのはなぜでしょうか? ※下記は画面上ではわかりにくいかもしれませんので、コピペして試してみてください。 1、2、4、東京都新宿区西新宿(2)特 ↓NG 1、2、4、東京都新宿区西新宿(2)特 =========================================== 1、2、4、東京都新宿区西新宿(2)特 ↓OK 1、2、4、東京都新宿区西新宿(2)特