• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Sub test01() Fr = Range(")

Excel VBAマクロの改造方法を教えてください

このQ&Aのポイント
  • Excel VBAのマクロを改造し、一度に複数の値を置換できる方法を教えてください。
  • 現在のマクロでは一度に一つの値しか置換できませんが、一度に複数の値を置換できるようにする方法を教えてください。
  • マクロを改良し、一度に複数の値を置換できるようにしたいです。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.1

右端がスペースの時置換を行うというのでいいでしょうか。 https://okwave.jp/qa/q9836487.html の時同様、C2~C11 に検索文字、D2~D11 に痴漢文字を置いて実行して下さい。 Option Explicit ' Sub Macro1()   Dim Row As Long   Dim Expression As String '   For Row = [A1].End(xlDown).Row To Cells(Rows.Count, "A").End(xlUp).Row     Expression = Cells(Row, "A") '     If Expression Like " *" Then       Cells(Row, "A") = MaltiReplace(Expression, [C2:D11])     End If   Next Row End Sub ' Function MaltiReplace(Expression As String, FindArea As Range)   Dim Row As Integer   Dim FindStr As String   Dim ReplStr As String '   MaltiReplace = Expression '   For Row = 1 To FindArea.Rows.Count     FindStr = FindArea(Row, 1)     ReplStr = FindArea(Row, 2)     MaltiReplace = Replace(MaltiReplace, FindStr, ReplStr)   Next Row End Function Option Explicit ' Sub Macro1()   Dim Row As Long   Dim Expression As String '   For Row = [A1].End(xlDown).Row To Cells(Rows.Count, "A").End(xlUp).Row     Expression = Cells(Row, "A") '     If Expression Like " *" Then       Cells(Row, "A") = MaltiReplace(Expression, [C2:D11])     End If   Next Row End Sub ' Function MaltiReplace(Expression As String, FindArea As Range)   Dim Row As Integer   Dim FindStr As String   Dim ReplStr As String '   MaltiReplace = Expression '   For Row = 1 To FindArea.Rows.Count     FindStr = FindArea(Row, 1)     ReplStr = FindArea(Row, 2)     MaltiReplace = Replace(MaltiReplace, FindStr, ReplStr)   Next Row End Function

nakanakaokwave
質問者

補足

置換するのは一番左の値です 間違えました 失礼しました

関連するQ&A