- ベストアンサー
VBAでの文字列検索
セルA1からA5に文字列があり 名前が以下のように表示されています。 富田(男) 渡辺(男) 松浪(女) 小牧(男) 和佐(女) 上記の文字列で(以下の文字列を消してB1~B5に編集した文字を表示する場合ってどうすればいいでしょうか? つまり B1からB5には以下のように表示させたいです 富田 渡辺 松浪 小牧 和佐 以上 よろしくお願い致します
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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)
- how-do-you-do
- ベストアンサー率56% (59/104)
=MID(A1,1,SEARCH("(",A1,1)-1) 参考になれば...
#1 の別解・・・というか、Replace関数を使うよりは、InStr関数で、左括弧の手前までを切り出した方がいいかも。 (氏名の文字には括弧が含まれていることはないので)
概ね、下記のような要領でできます。 (インデントが潰れて読みにくいと思いますが・・・) 全角と半角の括弧が混在している場合、工夫が必要かもしれません。 (確認していませんが) 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