- ベストアンサー
エクセルの複数同時置換
エクセルで文字列を同時に複数置換することって出来ますか? たとえば、ABCという文字列があった場合、 A→1 C→2 の置換を同時にやりたいんです。 ABC→1B2 に一度に置換する方法はありますか? よろしくお願いします。
- みんなの回答 (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
その他の回答 (2)
- DoragonFang
- ベストアンサー率41% (91/221)
こんなのはどうでしょう? =SUBSTITUTE(SUBSTITUTE(対象セル,"A",1),"C","2") SUBSTITUTEを入れ子にします。置換する文字が多いと、式が複雑になるので、大変ですが。 この場合はSUBSTITUTEの第4引数を省略しているので文字列に含まれるすべての"A"、"C"が対象です。
- kaiu
- ベストアンサー率20% (65/315)
実際におやりになりたい事は分かりませんが、 何らかの法則性があれば正規表現を使って 置換する方法は可能です。 下記フリーソフトもかなり便利なので 一度みてみてください。
お礼
回答ありがとうございます。 早速使わせてもらってます。役に立ちました! 感謝です。