• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロにて指定の文字間の文字を指定文字とともに削除)

マクロでセル内の特定文字と共に削除する方法

このQ&Aのポイント
  • エクセル2003でマクロを使用して、セル内の特定の文字と共に別の列に転記する方法について詳しく教えてください。
  • 品名のセルには、(( ))で囲まれた文字が含まれています。その文字と共に、(( ))も削除して別の列に転記したいです。
  • ただし、セル内には(( ))が存在しない場合や、( )で囲まれた文字が含まれる場合もありますが、これらは変更しないようにしてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ふつーに置換で一括削除します。 sub macro1()  range("C:C").copy range("D1")  range("D:D").replace what:="((*))", replacement:="" end sub

gx9wx
質問者

お礼

大変役にたちました。 どうもありがとうございます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 一例です。 (( )) で囲まれた文字列は必ず最後にあるという前提で・・・ Sheetモジュールです。 尚データはC列の1行目からあるとします。 Sub Sample1() Dim i As Long, k As Long For i = 1 To Cells(Rows.Count, "C").End(xlUp).Row With Cells(i, "C") If InStr(.Value, "((") > 0 And InStr(.Value, ("))")) > 0 Then k = InStr(.Value, "((") - 1 .Offset(, 1) = Left(.Value, k) Else .Offset(, 1) = .Value End If End With Next i End Sub こんな感じではどうでしょうか? ※ (( ))で囲まれた文字列が途中にある場合は当然コードも変わってきます。m(_ _)m

gx9wx
質問者

お礼

うまく処理できました。 ありがとうございました。

関連するQ&A