
2021年08月25日 (水) | 編集 |

Excelで文字列の中の数字を取り出したいという場面がありました。
例えば、「at215-00008g785」という文字列があったとします。
そこから、「215」「00008」「785」という数字を取り出したいという感じです。
どうしたらいいかなぁと思い、ユーザー定義関数でやってみることにしました。
VBAの標準モジュールに下記のように入力しました。
Function GetNum(txt As String, Optional n As Long = 1) As String
Dim reg As Variant
Dim regmth As Variant
Dim num As String
Set reg = CreateObject("VBScript.RegExp")
With reg
.Pattern = "\d+"
.Global = True
Set regmth = .Execute(txt)
num = regmth(n - 1)
End With
Set reg = Nothing
Set regmth = Nothing
GetNum = num
End Function
GetNumという関数にしました。第1引数は、数字が含まれている文字列を指定します。
第2引数は、何個目の数字を取り出すかを指定します。
省略すると、1つ目になります。
B列に数式を入力します。
B1=GetNum(A1)
B2=GetNum(A2,2)
B3=GetNum(A3,3)
B4=GetNum(A4,4)
とりあえずは思ったようには出来たのでよかったのですが、これがベストな答えかどうかはわかりません(^_^;)久々のExcel記事でした。
- 関連記事
-
-
【Excel】文字列の中の数字(文字列)を取り出したい
-
【Excel】ハイパーリンクで指定しているURLを取り出したい
-
【Excel】あみだくじを作ってみました
-
【Excel】鬼滅の刃、竈門炭治郎の市松模様を作りました
-
| ホーム |