- ベストアンサー
ExceL VBAでの置き換え
下記のように同じセルの中に英数字が入力されています。そして3文字目には様々な記号が入っています。 これを必ず-(ハイフン)に置き換える時のVBAでの書き方を教えて下さい。よろしくお願いいたします。 A02/4567 A02/4568 A02/4569 A02/4570 A02*4571 A02/4572 A02/4573 A02*4574 A02/4575 A02+4576
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは 「必ず3文字目」というルールならば、Left関数とRight関数が使えます。 以下はサンプルプログラムです。 Sheet1のA1がタイトル、A2以降にデータが入っていることを想定しています。 Sub Macro1() Dim i ThisWorkbook.Activate Worksheets(1).Select For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Cells(i, "A") = Left(Cells(i, "A"), 3) & "-" & Right(Cells(i, "A"), Len(Cells(i, "A")) - 4) Next i End Sub
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
文字数が一定でしたら Sub test() For Each mRange In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row) mRange.Value = Left(mRange.Value, 3) & "-" & Right(mRange.Value, 4) Next End Sub でいかがでしょう
お礼
早速、ありがとうございます。 ただしこれだと A02-/4567 A02-/4568 A02-/4569 A02-/4570 A02-*4571 A02-/4572 と-が入りますが、前の記号が残ってしまいます。 A02-4567 A02-4568 A02-4569 A02-4570 A02-4571 A02-4572 とするには削除しなければならないのでしょうか?
お礼
ありがとうございます。 大変参考になりました。