みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字列からメールアドレスを切り取ってくる方法

自社で得た顧客情報から、自社のデータベースのフォームに入力していくときに、適切にメールアドレスの部分だけを切り取ってデータとして、そのフォーマットの適切な場所に貼り付けていきたいです。
たとえば日本語の文字や全角・半角のスペースなどに挟まれた、メールアドレスの部分をきちんと切り取ってくるための、方法(エクセルの関数などを使った方法など)は、ありますでしょうか?

投稿日時 - 2019-03-24 22:23:01

QNo.9600173

困ってます

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

まずは@を見つけて、その前後を
メールアドレスの正規表現で切り出すことになると思います。
(全文正規表現マッチでもいいですが時間がかかるので)
https://www.megasoft.co.jp/mifes/seiki/s309.html
それをCSVファイルなどに書き出してインポート。
Excelなどにポンつけできるやり方は見たことないですね。

投稿日時 - 2019-03-25 00:05:27

お礼

ありがとうございます!

投稿日時 - 2019-04-04 18:41:20

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

区切り文字が特定されていないのであれば、ユーザー定義関数しかありません。
下のマクロをVBA 入れると、MailCut という関数ができます。
使い方は、A1にメールアドレスがるとして、
=MailCut(A1)
です。
'
Option Explicit
'
Function MailCut(Expression As String) As String
'
  Dim RegExp As Object
'
  Set RegExp = CreateObject("VBScript.RegExp")
  RegExp.Pattern = "\w+@[A-Za-z.]+"
  
  Set RegExp = RegExp.Execute(Expression)
'
  If RegExp.Count > 0 Then
    MailCut = RegExp(0).Value
  End If
End Function

投稿日時 - 2019-03-27 03:37:00

お礼

ありがとうございます!

投稿日時 - 2019-04-04 18:43:20

ANo.3

「全角・半角のスペースなどに挟まれた」のように「…など」の曖昧模糊な表現はやめてください。それには具体例を幾つか挙げるべきです。
回答者は、その中から規則性を見付けて、関数「など」を使った方法を提案できるのです。

投稿日時 - 2019-03-25 10:33:41

お礼

ありがとうございます そうですね! しかし実際にそれ以上、ちょっと規則性がないのです。イレギュラーなところは手作業になると思います。

投稿日時 - 2019-04-04 18:42:49

ANo.1

Q、メールアドレスを切り取ってくる方法は存在するか?
A、あると思いますが・・・。もしかしたら、難しいかも知れません。

投稿日時 - 2019-03-24 23:06:57

あなたにオススメの質問

オススメのQ&Aはありません。