【VBA】文字数の範囲を指定して特定文字の削除の方法を教えてください。 A1から一行に126文字のデータが入っています。 行数は毎回変動します。
【VBA】文字数の範囲を指定して特定文字の削除の方法を教えてください。 A1から一行に126文字のデータが入っています。 行数は毎回変動します。 24文字目から126文字目までに含まれる“*”を削除したいのです。 ご教授お願いします。
24文字目以降にある”*”を削除する方法はないでしょうか?
Visual Basic | Excel・146閲覧・25
ベストアンサー
24文字目から30文字目とした一例です。 サンプルは念の為、A列の置換結果をB列に転記するようにしていますが上書きしたければそこらへんは自分で変えてください。 Sub Sample() Dim i As Long Dim s(2), a As Range For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row Set a = Cells(i, "A") '非置換対象 1~23文字目 s(0) = Left(a.Value, 23) '置換対象 24文字目から7文字分 s(1) = Replace(Mid(a.Value, 24, 7), "*", "") '非置換対象 31文字目以降 s(2) = Mid(a.Value, 31) '置換、結合、転記 Cells(i, "B").Value = Join(s, "") Next i End Sub アレンジはご自分で、おかわりは無しでよろしくです。
補足へ。 Dim s(2), a As Range ↓ Dim s(1), a As Range s(1) = Replace(Mid(a.Value, 24, 7), "*", "") ↓ s(1) = Replace(Mid(a.Value, 24), "*", "") 削除 s(2) = Mid(a.Value, 31)
質問者からのお礼コメント
ありがとうございました。
お礼日時:5/18 16:55