• ベストアンサー

Excelマクロ 置換について教えてください。

A列の,10を,15に置換したいので下記マクロを記録しました。 ほかに,10を,16などにしたい場合もあるため、 入力画面を表示して初期値は,10から,15ですが、ほかを入力した場合は他の値で置換するマクロを教えてください。 Sub Macro1() Columns("A:A").Select Selection.Replace What:=",10", Replacement:=",15", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.3

変更前後のデータをセルに入れてもできます。 例えばB1セルに変更前、B2セルに変更後のデータを入れて sells()2行を加え、数値の部分を変数(b1$,b2$)に置き換えれば Sub Macro1() b1$ = Cells(1, 2) '変更前 b2$ = Cells(2, 2) '変更後 Columns("A:A").Select Selection.Replace What:=b1$, Replacement:=b2$, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

,10-,15 のように置換前と置換後を半角の"-"でつないだ物を、INPUTBOXで入力してみるとか? Sub Macro1() Dim v v = Application.InputBox(",10-,15のように[-]でつないで下さい", , ",10-,15", , , , , 2) If v = False Or v = "" Then Exit Sub If UBound(Split(v, "-")) <> 1 Then Exit Sub Columns("A:A").Select Selection.Replace What:=Split(v, "-")(0), Replacement:=Split(v, "-")(1), LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

ユーザーフォームを作成してテキストボックスを2個作成し 置換実行ボタンを作成、そのボタンのマクロに Columns("A:A").Select Selection.Replace What:=TextBox1.Value, Replacement:=TextBox2.Value, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False でいかがでしょう。

すると、全ての回答が全文表示されます。