• ベストアンサー

エクセルの複数同時置換

エクセルで文字列を同時に複数置換することって出来ますか? たとえば、ABCという文字列があった場合、 A→1 C→2 の置換を同時にやりたいんです。 ABC→1B2 に一度に置換する方法はありますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

マクロでしか出来ないと思います。 一応、標準モジュールに貼り付けることを想定していますが、どこでも構いません。フォームボタンなどに登録すると、簡単に使えるようになると思います。 Sub MultiReplacement()  Dim MyWords As Variant  Dim MyRepWords As Variant  Dim Ans As Integer  Dim Rng As Range  MyWords = Array("A", "C") 'ここに検索語を入れてください。  MyRepWords = Array(1, 2) 'ここに置換語を入れてください。  '検索語と置換語を調べる  If UBound(MyWords) <> UBound(MyRepWords) Then   MsgBox "検索語数( " & UBound(MyWords) & _   " )と置換語数( " & UBound(MyRepWords) & " )数が違います。", 64   Exit Sub  End If    Set Rng = Selection 'マウスで範囲を選択してください。  If Rng.Count = 1 Then   Ans = MsgBox("セル1つしか選択されていませんが、よろしいですか?", vbYesNo)   If Ans = vbNo Then    Exit Sub   End If  End If  '実行  For i = LBound(MyWords) To UBound(MyWords)   Cells.Replace What:=MyWords(i), Replacement:=MyRepWords(i), _   LookAt:=xlPart, _   MatchCase:=True  Next i End Sub

sattakah_goo
質問者

お礼

回答ありがとうございます。 早速使わせてもらってます。役に立ちました! 感謝です。

その他の回答 (2)

回答No.3

こんなのはどうでしょう? =SUBSTITUTE(SUBSTITUTE(対象セル,"A",1),"C","2") SUBSTITUTEを入れ子にします。置換する文字が多いと、式が複雑になるので、大変ですが。 この場合はSUBSTITUTEの第4引数を省略しているので文字列に含まれるすべての"A"、"C"が対象です。

  • kaiu
  • ベストアンサー率20% (65/315)
回答No.1

実際におやりになりたい事は分かりませんが、 何らかの法則性があれば正規表現を使って 置換する方法は可能です。 下記フリーソフトもかなり便利なので 一度みてみてください。

参考URL:
http://www.vector.co.jp/soft/win95/business/se190884.html?site=n