• ベストアンサー

Excel マクロで 特定文字列を一括置換

VB初心者です。 例えばExcel「商品」シートのA列に型式のデータがあって、マクロを使ってすべて次の条件で置換えしたい場合どのようなコードになるのかご教授お願いします。 1) 行頭の「0-」を削除 2)「半角数字」,「-(ハイフン)」,「改行」以外を削除

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

> もうひとつ教えてください。B列の52行からB列の151行まで変換したい場合はどこを変更すればよろしいでしょうか? 値を取り出したり入れたりしている箇所を変更するだけです。 コード中のCells(i, 1) が、シートのi行、1列を示しています。 現在のコードでは、For i = 1 To 10 で、変数iに1~10までの数値を順番に入れています。これで、A1~A10を指定している訳です。 ここをB列の52行からB列の151行を指定するように変更してください。

hikson
質問者

お礼

できました。感激です。今後もっと勉強します。ありがとうございました。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

正規表現を使ってこんな感じかなぁ……。 A1:A10までを対象にしてます。 Sub Sample()   Dim RE, i   Set RE = CreateObject("VBScript.RegExp")   With RE     .Global = True     .Pattern = "^0-|[^0-9\n-]"     For i = 1 To 10       If Cells(i, 1) <> "" Then         Cells(i, 1) = "'" & .Replace(Cells(i, 1).Value, "")       End If     Next i   End With   Set RE = Nothing End Sub

hikson
質問者

補足

ご回答ありがとうございます。応用を模索していたため回答が遅れて申し訳ありません。 A1:A10までを対象にした場合、うまくいきました。 もうひとつ教えてください。B列の52行からB列の151行まで変換したい場合はどこを変更すればよろしいでしょうか?

関連するQ&A