【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)」と入力する

結果

キャプチャ2


この記事が気に入ったらサポートをしてみませんか?