【VBA】文字数の範囲を指定して特定文字の削除の方法を教えてください。 A1から一行に126文字のデータが入っています。 行数は毎回変動します。

補足

24文字目以降にある”*”を削除する方法はないでしょうか?

Visual Basic | Excel146閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0
画像

ThanksImg質問者からのお礼コメント

ありがとうございました。

お礼日時:5/18 16:55

その他の回答(1件)

0

コードの実行結果の検証のため、貴方の126文字のサンプル作成は大変なので、126文字を20文字、24文字目を7文字目として検証してみました。 24文字目(7文字目)以降には、”*”は含まれていても1個しか含まれていないものとする。 もし、2個以上含まれる可能性があれば別途検討したいと考えます。 実行結果の検証結果は、添付図の通りです。 良ければ、コードを参照ください。 Sub 文字削除() Dim n0 As Long Dim r As Integer For n0 = 1 To Cells(Rows.Count, 1).End(xlUp).Row myText0 = Cells(n0, 1).Value For r = 1 To 14 myText1 = Right(Cells(n0, 1).Value, r) If Left(myText1, 1) = "*" Then myText2 = Right(myText1, Len(myText1) - 1) Cells(n0, 1).Value = Left(myText0, 20 - Len(myText1)) & myText2 Exit For End If Next Next End Sub 126文字で検証を行なう場合には、コード内の数値を書き換え下さい。 1.「For r = 1 To 14」 を 「For r = 1 To 103」 に書き換えください。 2.「Cells(n0, 1).Value = Left(myText0, 20 - Len(myText1)) & myText2」 を 「 Cells(n0, 1).Value = Left(myText0, 126 - Len(myText1)) & myText2」 に書き換えください。

画像