ExcelVBAでメール@の後ろ(ドメイン)を抜出し取得する

投稿者: | 2020年9月11日
excelアイコン

バージョン:マイクロソフト365

 

エクセルVBAでメールの@マークの後ろの部分(ドメイン)を抜き出し取得してみたいと思います。

それではいってみましょう(^^♪

 

具体的に何をすればいいか? 

手順

・メールの@マークの場所が文字列の先頭から何番目かを探します。

・@マークの位置番号がわかったら、その位置番号の文字の1文字後ろから最後の文字までを抜き出します。

 

この2つのみです\(^^)/

 

メールの@マークの場所が文字列の先頭から何番目かを探します(instr)

instr関数は指定した文字の位置番号を返します。

 

構文

InStr(対象文字, 検索文字)

https://dailyrecords.blog/archives/9104

 

サンプル

@マークが文字の先頭から何番目かを調べます。

 

確認

Debug.Printでイミディエイトウィンドウに表示させてみます。

 

結果

8

 

@マークの位置が文字の先頭から数えて8番目ということが分かりました。

この8を次で解説するMid関数で使用します。

 

@マークの次の文字から最後の文字まで全て抜き出す(Mid)

Mid関数は指定した開始位置から文字を抜き出します。

 

構文

Mid(対象文字, 開始位置)

https://dailyrecords.blog/archives/9106

 

サンプル

実際は上記の第2引数の開始位置の8の部分に、先ほど作成したのInstrをコピペして挿入します。

+1してるのは@マークの次の文字から取得するからです。

 

確認

Debug.Printでイミディエイトウィンドウに表示させてみます。

 

結果

yahoo.co.jp

 

VBAサンプル

excelVBA-メール@マークの後ろを抜取る

 

イミディエイトを表示させるには

 

Split関数で取得

Split関数でも簡単に取得できるので是非一読してみてください!

こっちの方が簡単かもしれません(^o^)o

メールの@マークの後ろのドメインを取得(Split関数)

 

まとめ

慣れないうちは少々難しいですが毎日眺めてたら嫌でも覚えちゃいますから最初はわからなくてもこんなもんなんだで大丈夫ですからね!

以上です(^^)