アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで文字列を同時に複数置換することって出来ますか?

たとえば、ABCという文字列があった場合、

A→1
C→2

の置換を同時にやりたいんです。

ABC→1B2 に一度に置換する方法はありますか?
よろしくお願いします。

A 回答 (3件)

マクロでしか出来ないと思います。


一応、標準モジュールに貼り付けることを想定していますが、どこでも構いません。フォームボタンなどに登録すると、簡単に使えるようになると思います。

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
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/05/10 03:56

こんなのはどうでしょう?



=SUBSTITUTE(SUBSTITUTE(対象セル,"A",1),"C","2")

SUBSTITUTEを入れ子にします。置換する文字が多いと、式が複雑になるので、大変ですが。
この場合はSUBSTITUTEの第4引数を省略しているので文字列に含まれるすべての"A"、"C"が対象です。
    • good
    • 17

実際におやりになりたい事は分かりませんが、


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

参考URL:http://www.vector.co.jp/soft/win95/business/se19 …
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!