| 
    
     |  | こんにちは 
 何をどう置換するのか良く分からないので数例でも実際の元文字列と処理後の文字列
 の対比表みたいなものを記載してもらえるといいのですが。
 
 Sub test()
 Dim v As Variant
 Dim i As Long
 With Range("C1", Range("C65536").End(xlUp))
 v = .Value
 With WorksheetFunction
 For i = 1 To UBound(v, 1)
 Select Case True
 Case Left(v(i, 1), 2) = "a_"
 v(i, 1) = "優良" & Mid(v(i, 1), 3)
 Case Left(v(i, 1), 2) = "b_"
 v(i, 1) = "普通" & Mid(v(i, 1), 3)
 Case InStr(2, v(i, 1), "[a_") > 1
 v(i, 1) = .Substitute(v(i, 1), "a_", "優良")
 Case InStr(2, v(i, 1), "[b_") > 1
 v(i, 1) = .Substitute(v(i, 1), "b_", "普通")
 Case .IsNumber(v(i, 1))
 v(i, 1) = "待機"
 Case Else
 If InStr(1, v(i, 1), "[") > 1 Then
 v(i, 1) = _
 Left(v(i, 1), _
 InStr(1, v(i, 1), "[")) & "待機]"
 End If
 End Select
 Next
 End With
 .Value = v
 End With
 End Sub
 
 置換処理パターンが合っていれば、正規表現を使ったコードに変更した方がいいかも
 知れませんけど。
 
 |  |