#510 複数文字列をまとめて置換するプロシージャ例 VBA

VBAで文字列の置換を行うには「Replace」関数を使います。ただこの関数はひとつの文字列の置換しか行えないので、複数文字列をまとめて置換するサンプルプロシージャの例を紹介します。

次のオリジナルの「ReplacePlural」関数では、第1引数に指定された文字列の中を検索して、所定の文字列が見つかったらそれを第2引数に指定された文字列に置換します。

特徴は第3引数です。ここには検索対象の文字列を指定しますが、「ParamArray」という宣言をすることで、任意の複数の文字列を指定できるようになっています。引数が1ケでもかまいませんし、2ケ3ケと複数あってもかまいません。
通常の引数の宣言ではひとつの変数しか指定できませんが、このようにParamArrayを使い、かつVariant型の配列とすることで、可変の引数を指定することができます。


Public Function ReplacePlural(strData As String, strReplace As String, ParamArray avarFind() As Variant) As String
'概要 : 文字列内を指定の複数の文字列で検索して一括置換する
'引数 :  strData 置換対象の元の文字列
'           strReplace 置換するの文字列
'           avarFind 検索する文字列(任意の複数の文字列を指定可)
'返り値 : 置換後の文字列

  Dim schar As Variant
  
  For Each schar In avarFind
    strData = Replace(strData, schar, strReplace)
  Next schar
  
  ReplacePlural = strData
  
End Function



実行例:
  • 次の例では、第1引数に指定された「A,B、C,D,EFG」という文字列内を検索し、「、(全角の読点)」・「,(全角のカンマ)」の文字があったらそれらをすべて「,(半角カンマ)」に置換しています。
    実行例1

  • 次の例では、第1引数に指定された「A,B、C,D,EFG」という文字列内を検索し、「、(全角の読点)」・「,(全角のカンマ)」・「,(半角カンマ)」の文字をすべて「*」に置換しています。
    実行例2

  • 次の例では、第1引数に指定された「ABCDEFG」という文字列内を検索し、「B」・「D」・「FG」の文字をすべて「X」に置換しています。
    実行例3
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved