| 
    
     |  | ▼ponpon さん、超初心者SSさん、こんばんは。 
 検索したい文字列が二つは、必ず、一部が含まれている
 (本---本数、品---品数、証---証拠のように)のであれば、
 ponpon さんの方法がよさそうですね。
 
 以下のコードはA列のデータをB列とC列に分割し、
 最終的にA列を削除するコードです。
 
 '======================================================
 Sub main()
 Dim 検索1 As String
 Dim 検索2 As String
 検索1 = "本"
 検索2 = "本数"
 wk = 検索1
 If Len(検索1) < Len(検索2) Then
 検索1 = 検索2
 検索2 = wk
 End If
 Dim rng As Range
 Set rng = Range("a2", Cells(Rows.Count, 1).End(xlUp))
 With rng
 If .Row > 1 Then
 With .Offset(0, 1).Resize(, 2)
 .Formula = _
 Array("=IF(ISERROR(FIND(""" & 検索1 _
 & """,A2)),SUBSTITUTE(A2,""" & 検索2 & _
 """,""""),SUBSTITUTE(A2,""" & _
 検索1 & """,""""))", _
 "=IF(ISERROR(FIND(""" & 検索1 & _
 """,A2)),IF(A2=B2,"""",""" & 検索2 _
 & """),""" & 検索1 & """)")
 'B列には、
 ' =IF(ISERROR(FIND("本数",A2)),SUBSTITUTE(A2,"本",""),SUBSTITUTE(A2,"本数",""))
 'C列には
 '=IF(ISERROR(FIND("本数",A2)),IF(A2=B2,"","本"),"本数")
 'この例では、上記のような数式が入る
 .Value = .Value
 End With
 Range("a:a").Delete
 End If
 End With
 End Sub
 
 確認してください。
 
 |  |