VBA置換文字列| VBAを使用して文字列内のテキストを置き換える方法は?

ExcelVBA置換文字列

置換は、ワークシート機能とVBA機能の両方です。この関数は、文字列の特定の単語を別の文字列に置き換えるのに役立ちます。これは、VBAの置換機能と同様に機能します。

テスト文字列またはテキストデータ値を処理するとき、何かを別のものに置き換えたり、置き換えたり、2つのセルデータを1つに結合したり、1つのセルデータを複数のものに分割したりすることは明らかです。これらはすべて、職場で日常的に行う一般的なタスクです。

では、文字列内の1つの単語を別の単語に置き換えるにはどうすればよいでしょうか。たとえば、文字列が「インドは発展途上国であり、アジアの国のインド」である場合、この文字列から「インド」という単語を置き換えて「バーラト」に変更する必要があります。

これは、置換機能を使用することで可能になります。この記事では、VBAコーディングで文字列を置き換える方法を紹介します。

置換機能

  • 式:これは、何かを何かに置き換えようとしている元の文字列値に他なりません。以下の例は、「インドは発展途上国であり、インドはアジアの国にある」という表現文字列です。
  • 文字列の検索:置き換えようとしている文字列は何ですか。たとえば、Expression文字列で、「India」という単語を置き換えようとしています。
  • 文字列の置換検索文字列を置き換える代替文字列は何ですか?したがって、この場合、「インド」という単語を「バーラト」に置き換えようとしています。
  • [開始]:これはオプションのパラメーターです。上記の文字列(式)には「インド」という2つの単語があるため、検索文字列のどの位置から置換プロセスを開始する必要があります。たとえば、2と言うと、2番目以降の位置から「インド」という単語が置き換えられ始めます。
  • [カウント]:検索文字列に複数回表示される場合は、置き換える必要のある単語の数。

たとえば、「インド」という単語が5回出現し、カウントを3として指定すると、最初の3つの「インド」の単語のみが置き換えられます。

VBAを使用して文字列内のテキストを置き換える方法は?

このVBA置換文字列Excelテンプレートはここからダウンロードできます–VBA置換文字列Excelテンプレート

例1

次に、以下の文字列値から「India」という単語を「Bharath」に置き換えてみます。

「インドは発展途上国であり、インドはアジアの国です」

まず、Excelマクロプロシージャを今すぐ開始します。

コード:

 Sub Replace_Example()End Sub 

VBA変数を文字列として定義します。

コード:

 Sub Replace_Example()Dim NewString As String End Sub 

この変数では、「India」という単語を「Bharath」に置き換えた後、新しい文字列値を表示します。この変数については、置換機能を開きます。

この関数の最初の引数は「式」です。つまり、どの文字列から単語を置き換えようとしているので、「インドは発展途上国であり、インドはアジアの国です」という文字列をコピーして貼り付けます。

次の引数は「文字列の検索」、つまりどの単語を置き換える必要があるか、つまり「インド」です。

次の引数は「ReplaceString」、つまり「India」、つまり「Bharath」という単語を置き換える必要のある文字列です。

さて、今のところ残りの引数は無視してください。メッセージボックスに結果を表示します。

コード:

 Sub Replace_Example()Dim NewString As String NewString = Replace( "インドは発展途上国であり、インドはアジアの国です"、 "India"、 "Bharath")MsgBox NewString End Sub 

F5キーを使用して、または手動でコードを実行し、新しい文字列の結果を確認してみましょう。

わかりました。上記の結果を見てください。「インド」という単語が「バーラト」という単語に置き換えられています。

例2

次に、変数で同じコードを使用する方法を説明します。以下のコードを見てください。

コード:

 Sub Replace_Example1() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString) MsgBox NewString End Sub 

In the above code, I have declared an extra three variables.

 Dim MyString As String Dim FindString As String Dim ReplaceString As String 

For these variables I have assigned values, instead of supplying the Expression String, Find String, and Replace String we will supply only variable to the Replace function.

This code also gives the same result but the only difference is we have used variables instead of direct supply of values to the function.

Example #3

Assume you want to replace the word “India” only from the second position then we need to use the Replace function parameter [“Start”]. Look at the below code for your information.

Code:

 Sub Replace_Example2() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Start:=34) MsgBox NewString End Sub 

Only one extra thing we have added from the previous code is the “Start” parameter as 34. Now run the code and see the result.

Now we can see only string after the 34th character of the string with “India” replacing with “Bharath”.

Example #4

Now for an example, if we want to replace only the first occurrence of the word “India” to “Bharath” then we need to use [“Count”] parameter of the Replace function.

Below is the code for you.

Code:

 Sub Replace_Example3() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Count:=1) MsgBox NewString End Sub 

Run the code manually or through the F5 key and see the result.

As you can see above it has replaced only the first occurrence of the word “India” to “Bharath” and the second instance remains the same.

Things to Remember Here

  • Replace is a string function family in VBA.
  • In VBA, the replace function replaces all the supplied words with replaced string if the count parameter is not specified.
  • The start parameter will delete the number of characters supplied and show the remaining result.