• ベストアンサー

メールアドレスの文字列を@の左右でセルを振り分けるマクロを

Excelのsheetに、メールアドレスを(A1)から(A100)まで縦に表示したsheetがあります。 これをB列に@マークの左側(個人アドレス)、C列に@マークの右側(サーバーのアドレス)を表示させたいのですが、 出来るだけ簡単なマクロを作って示していただけませんか。 長く、VBAから遠ざかっていたため、自信がありません。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 その程度でしたら、マクロでなくてもよいと思いますね。 B1~ =MID(A1,1,FIND("@",A1)-1) C1~ =SUBSTITUTE(A1,B1&"@","") マクロなら、こんなところかな? Sub TEST() Dim num As Integer, c As Range For Each c In Range("A1", Range("A65536").End(xlUp))  num = InStr(c.Value, "@") If num > 0 Then   c.Offset(, 1).Value = Mid$(c.Value, 1, num - 1)   c.Offset(, 2).Value = Mid$(c.Value, num + 1) End If Next End Sub

noname#18526
質問者

お礼

感謝。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

マクロでなくても B1 =LEFT(A1,FIND("@",A1)-1) C1 =RIGHT(A1,LEN(A1)-FIND("@",A1)) でできます

noname#18526
質問者

お礼

感謝。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

こんなところでいかがでしょうか? Sub test() Dim C As Range Dim T As Variant On Error Resume Next For Each C In Range("A1:A100") If C.Value <> "" Then T = Split(C.Value, "@") C.Offset(, 1) = T(LBound(T)) C.Offset(, 2) = T(LBound(T) + 1) End If Next On Error GoTo 0 End Sub

noname#18526
質問者

お礼

感謝。