【VBA】ちょっと便利なファンクション2
文字列を指定した種類の文字列だけに変換します
Option Explicit
'---------------------------------------------------------
' 機能 : 文字列を指定した種類の文字列だけに変換する
' 第1引数 : sSrc=変換したい文字列 String型
' 第2引数 : sSrc=文字列
' 第2引数 : intKind=1 数字
' =2 英字
' =3 カタカナ
' =4 ひらがな
' =5 数字以外
' =6 数字英字以外
' 返り値 : 文字列
' 備考 : 指定された種類が存在しない時""を返す
'---------------------------------------------------------
Public Function StringExtraction(sSrc As String, Optional intKind As Integer = 1) As String
Dim re As Object
Dim sPtn As String
Dim sRet As String
' 変数を初期化します。
Set re = CreateObject("VBScript.RegExp")
Select Case intKind
Case 1
sPtn = "[^0-90-9]"
Case 2
sPtn = "[^A-Za-z]"
Case 3
sPtn = "[^ア-ンア-ン]"
Case 4
sPtn = "[^あ-ん]"
Case 5
sPtn = "[0-90-9]"
Case 6
sPtn = "[0-90-9A-Za-zA-Za-z]"
End Select
With re
.Pattern = sPtn '文字列の種類を設定します。
.Global = True '全体を対象とします。
.MultiLine = True '複数行として検索します。
sRet = .Replace(sSrc, "") ' 置換します。
End With
StringExtraction = sRet
Set re = Nothing
Exit Function
End Function
使い方
A1セルの値を「英字」のみに変換し、B1セルに入力したい
B2セルに「=StringExtraction(A1,2)」と入力する
結果
この記事が気に入ったらサポートをしてみませんか?