• ベストアンサー

VBAでの文字列検索

セルA1からA5に文字列があり 名前が以下のように表示されています。 富田(男) 渡辺(男) 松浪(女) 小牧(男) 和佐(女) 上記の文字列で(以下の文字列を消してB1~B5に編集した文字を表示する場合ってどうすればいいでしょうか? つまり B1からB5には以下のように表示させたいです 富田 渡辺 松浪 小牧 和佐 以上 よろしくお願い致します

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Sub test01() Worksheets("sheet1").Activate d = Range("a1").CurrentRegion.Rows.Count For i = 1 To d p = InStr(1, Cells(i, "A"), "(") If p = 0 Then Cells(i, "B") = Cells(i, "A") Else Cells(i, "B") = Mid(Cells(i, "A"), 1, p - 1) End If Next i End Sub

その他の回答 (3)

回答No.4

=MID(A1,1,SEARCH("(",A1,1)-1) 参考になれば...

noname#4564
noname#4564
回答No.2

#1 の別解・・・というか、Replace関数を使うよりは、InStr関数で、左括弧の手前までを切り出した方がいいかも。 (氏名の文字には括弧が含まれていることはないので)

noname#4564
noname#4564
回答No.1

概ね、下記のような要領でできます。 (インデントが潰れて読みにくいと思いますが・・・) 全角と半角の括弧が混在している場合、工夫が必要かもしれません。 (確認していませんが) Sub EditNames() Dim strTmp As String Dim i As Long With Application.ActiveSheet For i = 1 To .UsedRange.Rows.Count strTmp = Replace(.Cells(i, 1).Value,"(男)" , "") strTmp = Replace(strTmp,"(女)" , "") .Cells(i, 2).Value = Trim$(strTmp) Next i End With End Sub