セルの値の置換(Replace)

以下のコードは、Excelのシート内で指定されたセル範囲内の値を特定の文字列に置換する方法を示しています。具体的には、”男” を “male” に、”女” を “female” に置換します。

' セルの値の置換(Replace)
Private Sub Range_Replace()
    With Sheet1.Range("B2").CurrentRegion
        ' “男” を “male” に置換する
        ' 部分一致で置換を行い、大文字と小文字を区別せず、バイト単位で一致を行います。
        .Replace _
            What:="男", Replacement:="male", _
            LookAt:=xlPart, MatchCase:=False, Matchbyte:=True
        ' “女” を “female” に置換する
        .Replace _
            What:="女", Replacement:="female", _
            LookAt:=xlPart, MatchCase:=False, Matchbyte:=True
    End With
End Sub

コードの詳細な説明

  1. サブルーチンの宣言:Private Sub Range_Replace()
    • このサブルーチンは、指定したセル範囲内で特定の文字列を別の文字列に置換します。
  2. セル範囲の特定:With Sheet1.Range("B2").CurrentRegion
    • セル B2 を基準にして、そのセルが含まれる連続したセル範囲(CurrentRegion)を取得します。
  3. 文字列の置換:.Replace _ What:="男", Replacement:="male", _ LookAt:=xlPart, MatchCase:=False, Matchbyte:=True
    • .Replace メソッドを使用して、”男” を “male” に置換します。
    • What:="男":
      • 置換したい文字列は “男” です。
    • Replacement:="male":
      • “男” を “male” に置換します。
    • LookAt:=xlPart:
      • 部分一致で置換を行います(セル内の一部分でも一致すれば置換します)。
    • MatchCase:=False:
      • 大文字と小文字を区別しません。
    • Matchbyte:=True:
      • バイト単位で一致を行います(日本語などの2バイト文字を含む場合に使用)。
  4. 同様の置換処理:.Replace _ What:="女", Replacement:="female", _ LookAt:=xlPart, MatchCase:=False, Matchbyte:=True
    • .Replace メソッドを使用して、”女” を “female” に置換します。
    • 置換の条件は先ほどと同じです。

実行の流れ

  1. セル範囲の取得:
    • セル B2 を基準とする連続したセル範囲を取得します。
  2. 文字列の置換:
    • “男” を “male” に置換します。
    • “女” を “female” に置換します。

使用例

例えば、セル範囲に以下のデータがあるとします:

このコードを実行すると、セル範囲内の “男” は全て “male” に、”女” は全て “female” に置換されます。結果として、データは以下のようになります:

このコードは、特定の文字列を一括で別の文字列に置換するために非常に有用です。

Follow me!